使用skel框架构建的响应式网站只有在使用漂亮的URL时才能应用css

Responsive site built with skel framework fails to apply css only when using pretty URLs

本文关键字:URL 漂亮 应用 css 构建 框架 skel 响应 使用 网站      更新时间:2024-04-21

我正在为一个使用skel框架的响应站点使用一个模板(html5up.net/prolog)。

这个网站运行得很好,除非我通过一个漂亮的URL访问它。示例:Example.com/fake-dir/。目录fake-dir不存在,漂亮的URLS使Web服务器看起来在根目录中。由于某些原因,在使用漂亮的URLS时不应用css样式。应用漂亮URL的My.htaccess如下:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . / [L]

我已经找到了init.js的问题,并感觉这与js如何尝试应用css文件有关。我认为它在漂亮的url目录/css中寻找一个css文件,而不是根目录/css。我曾尝试在init.js的开头添加一个绝对路径,如图所示,用于不同的样式,但没有成功global':{range:'*',href:'example.com/css/style.css',容器:1400,网格:{排水沟:40},视口:{scalable:false}},

这是整个init.js文件。任何帮助都会得到通知。

/*
Prologue by HTML5 UP
html5up.net | @n33co
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
*/
(function($) {
    skel.init({
        reset: 'full',
        breakpoints: {
            'global': { range: '*', href: 'css/style.css', containers: 1400, grid: { gutters: 40 }, viewport: { scalable: false } },
            'wide': { range: '961-1880', href: 'css/style-wide.css', containers: 1200, grid: { gutters: 40 } },
            'normal': { range: '961-1620', href: 'css/style-normal.css', containers: 960, grid: { gutters: 40 } },
            'narrow': { range: '961-1320', href: 'css/style-narrow.css', containers: '100%', grid: { gutters: 20 } },
            'narrower': { range: '-960', href: 'css/style-narrower.css', containers: '100%', grid: { gutters: 20 } },
            'mobile': { range: '-736', href: 'css/style-mobile.css', containers: '100%!', grid: { collapse: true } }
        },
        plugins: {
            layers: {
                config: {
                    mode: 'transform'
                },
                sidePanel: {
                    hidden: true,
                    breakpoints: 'narrower',
                    position: 'top-left',
                    side: 'left',
                    animation: 'pushX',
                    width: 240,
                    height: '100%',
                    clickToHide: true,
                    html: '<div data-action="moveElement" data-args="header"></div>',
                    orientation: 'vertical'
                },
                sidePanelToggle: {
                    breakpoints: 'narrower',
                    position: 'top-left',
                    side: 'top',
                    height: '4em',
                    width: '5em',
                    html: '<div data-action="toggleLayer" data-args="sidePanel" class="toggle"></div>'
                }
            }
        }
    });
    $(function() {
        var $window = $(window),
            $body = $('body');
        // Disable animations/transitions until the page has loaded.
            $body.addClass('is-loading');
            $window.on('load', function() {
                $body.removeClass('is-loading');
            });
        // CSS polyfills (IE<9).
            if (skel.vars.IEVersion < 9)
                $(':last-child').addClass('last-child');
        // Forms (IE<10).
            var $form = $('form');
            if ($form.length > 0) {
                $form.find('.form-button-submit')
                    .on('click', function() {
                        $(this).parents('form').submit();
                        return false;
                    });
                if (skel.vars.IEVersion < 10) {
                    $.fn.n33_formerize=function(){var _fakes=new Array(),_form = $(this);_form.find('input[type=text],textarea').each(function() { var e = $(this); if (e.val() == '' || e.val() == e.attr('placeholder')) { e.addClass('formerize-placeholder'); e.val(e.attr('placeholder')); } }).blur(function() { var e = $(this); if (e.attr('name').match(/_fakeformerizefield$/)) return; if (e.val() == '') { e.addClass('formerize-placeholder'); e.val(e.attr('placeholder')); } }).focus(function() { var e = $(this); if (e.attr('name').match(/_fakeformerizefield$/)) return; if (e.val() == e.attr('placeholder')) { e.removeClass('formerize-placeholder'); e.val(''); } }); _form.find('input[type=password]').each(function() { var e = $(this); var x = $($('<div>').append(e.clone()).remove().html().replace(/type="password"/i, 'type="text"').replace(/type=password/i, 'type=text')); if (e.attr('id') != '') x.attr('id', e.attr('id') + '_fakeformerizefield'); if (e.attr('name') != '') x.attr('name', e.attr('name') + '_fakeformerizefield'); x.addClass('formerize-placeholder').val(x.attr('placeholder')).insertAfter(e); if (e.val() == '') e.hide(); else x.hide(); e.blur(function(event) { event.preventDefault(); var e = $(this); var x = e.parent().find('input[name=' + e.attr('name') + '_fakeformerizefield]'); if (e.val() == '') { e.hide(); x.show(); } }); x.focus(function(event) { event.preventDefault(); var x = $(this); var e = x.parent().find('input[name=' + x.attr('name').replace('_fakeformerizefield', '') + ']'); x.hide(); e.show().focus(); }); x.keypress(function(event) { event.preventDefault(); x.val(''); }); });  _form.submit(function() { $(this).find('input[type=text],input[type=password],textarea').each(function(event) { var e = $(this); if (e.attr('name').match(/_fakeformerizefield$/)) e.attr('name', ''); if (e.val() == e.attr('placeholder')) { e.removeClass('formerize-placeholder'); e.val(''); } }); }).bind("reset", function(event) { event.preventDefault(); $(this).find('select').val($('option:first').val()); $(this).find('input,textarea').each(function() { var e = $(this); var x; e.removeClass('formerize-placeholder'); switch (this.type) { case 'submit': case 'reset': break; case 'password': e.val(e.attr('defaultValue')); x = e.parent().find('input[name=' + e.attr('name') + '_fakeformerizefield]'); if (e.val() == '') { e.hide(); x.show(); } else { e.show(); x.hide(); } break; case 'checkbox': case 'radio': e.attr('checked', e.attr('defaultValue')); break; case 'text': case 'textarea': e.val(e.attr('defaultValue')); if (e.val() == '') { e.addClass('formerize-placeholder'); e.val(e.attr('placeholder')); } break; default: e.val(e.attr('defaultValue')); break; } }); window.setTimeout(function() { for (x in _fakes) _fakes[x].trigger('formerize_sync'); }, 10); }); return _form; };
                    $form.n33_formerize();
                }
            }
        // Scrolly links.
            $('.scrolly').scrolly();
        // Nav.
            var $nav_a = $('#nav a');
            // Scrolly-fy links.
                $nav_a
                    .scrolly()
                    .on('click', function(e) {
                        var t = $(this),
                            href = t.attr('href');
                        if (href[0] != '#')
                            return;
                        e.preventDefault();
                        // Clear active and lock scrollzer until scrolling has stopped
                            $nav_a
                                .removeClass('active')
                                .addClass('scrollzer-locked');
                        // Set this link to active
                            t.addClass('active');
                    });
            // Initialize scrollzer.
                var ids = [];
                $nav_a.each(function() {
                    var href = $(this).attr('href');
                    if (href[0] != '#')
                        return;
                    ids.push(href.substring(1));
                });
                $.scrollzer(ids, { pad: 200, lastHack: true });
    });
})(jQuery);

模板或js没有问题。这就是我最初调用js文件的方式。我没有使用绝对路径