javascript - 使用 skel 框架构建的响应式站点仅在使用漂亮的 URL 时无法应用 css

标签 javascript css .htaccess mod-rewrite skel

我正在为使用 skel 框架的响应式网站使用模板 (html5up.net/prologue)。

除非我通过漂亮的 URL 访问它,否则该网站运行良好。示例:example.com/fake-dir/。 dir fake-dir 不存在,漂亮的 URLS 使网络服务器在根目录中查找。出于某种原因,在使用漂亮的 URLS 时不应用 css 样式。我的 .htaccess 应用了 prety urls 如下:

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

我已经追踪到 init.js 的问题,并且感觉它与 js 如何尝试应用 css 文件有关。我认为它正在根目录/css 的 pretty url 目录/css 中寻找一个 css 文件。我已经尝试在 init.js 的开头添加绝对路径,如此处所示,用于不同的样式,但这没有用。 'global': { range: '*', href: 'example.com/css/style.css', containers: 1400, grid: { gutters: 40 }, viewport: { 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 文件的方式。我没有使用绝对路径

关于javascript - 使用 skel 框架构建的响应式站点仅在使用漂亮的 URL 时无法应用 css,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28671387/

相关文章:

javascript - Handlebars 动态内联部分

javascript - GraphQL 不允许在 NodeJS 中插入数组对象

javascript - 是否可以使用 setTimeout 设置循环动画?

css - 在 Angular 2 中使用 Sass

javascript - Handsontable 弹出自动完成编辑器在水平滚动条处被切断

php - .htaccess 从 URL 中删除文件扩展名和变量

php - 我想使用 .htaccess 从 url 中删除问号和 .php 扩展名

javascript - React Hot Module Reloader 阻止摩卡测试运行

html - 悬停时的 CSS 过渡 : animate mouse-out as well

php - Slim Framework/公用文件夹重定向