0

我正在开发一个 asp.net mvc 应用程序,我将此模板用于我的应用程序。对于 js 和 css 资源,我使用 URL.Content 辅助方法,但问题是模板引用的 css 资源仅在 home/index 操作中加载,当我转到其他操作时,浏览器控制台说它找不到资源。

这是我的 _layout.cshtml 中的内容:

<script src="@Url.Content("~/Scripts/jquery-1.8.3.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/js/config.js")"></script>
<script src="@Url.Content("~/js/skel.min.js")"></script>
<script src="@Url.Content("~/js/skel-panels.min.js")"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

<noscript>
    <link rel="stylesheet" href="@Url.Content("~/css/skel-noscript.css")"/>
    <link rel="stylesheet" href="@Url.Content("~/css/style.css")" />
    <link rel="stylesheet" href="@Url.Content("~/css/style-desktop.css")" />
</noscript>

这是我在 chrome Element 选项卡中可以看到的内容:

<script src="/Scripts/jquery-1.8.3.min.js" type="text/javascript"></script>
<script src="/js/config.js"></script>
<script src="/js/skel.min.js"></script>
<link rel="stylesheet" type="text/css" href="css/style.css">
<link rel="stylesheet" type="text/css" href="css/style-desktop.css">
<script src="/js/skel-panels.min.js"></script>
<style type="text/css"></style>
<script src="/Scripts/jquery.unobtrusive-ajax.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.validate.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.validate.unobtrusive.min.js" type="text/javascript"></script>
<noscript>

        &lt;link rel="stylesheet" href="/css/skel-noscript.css"/&gt;
        &lt;link rel="stylesheet" href="/css/style.css" /&gt;
        &lt;link rel="stylesheet" href="/css/style-desktop.css" /&gt;
    </noscript>

这是我从浏览器中的控制台得到的错误:

GET http:///myapp/test/css/style-desktop.css 404 (Not Found) skel.min.js:1
GET http://myapp/test/css/style.css 404 (Not Found) skel.min.js:1
4

3 回答 3

3

您所要做的就是在“_skel_config”obj 中设置“前缀”。走向你的风格的正确道路。

window._skel_config = {
    prefix: 'css/style',
};
于 2013-11-15T19:34:42.393 回答
2

Alaasdk 是对的,大多数使用 skelJS 的类似模板都带有这样的东西:

window._skel_config = {
    prefix: '/css/style'
}

在他们的 js/config.js 文件中。因此,如果您有处理这样的 URL 的控制器:

domain/users/10
domain/category/subcategory/article-slug

或类似的,您只需将其设置为相对 URL,如

prefix: '/css/style'
于 2013-11-20T10:32:09.577 回答
0

您在代码段中拥有的样式表链接位于一个<noscript>块中,并且仅适用于已关闭 javascript 的用户。

正如@marcus33cz 和@alaasdk 指出的那样,您在config.js 中设置了相对路径。

在最新版本的 skel 中,您可以像这样在 init.js 中设置它:

global: { href: '/css/style.css', containers: 1400, grid: { gutters: ['2em', 0] } },
desktop: { media: '(max-width: 1680px)', href: '/css/style-desktop.css', containers: 1200 },
// and so on for all of your stylesheets
于 2015-02-24T22:10:22.137 回答