【问题标题】:asp.net mvc script and style referencesasp.net mvc 脚本和样式参考
【发布时间】:2011-02-18 06:42:25
【问题描述】:

我正在尝试包含在部署时不会中断的脚本和样式引用,但是我什至无法让这些引用在本地工作。我尝试过使用Url.Content() 和 MVCContrib 的<%=Html.ScriptInclude("")%>。

我的脚本位于站点根目录的 Scripts 文件夹中;我的风格很平常 内容/css/ 文件夹。

脚本呈现如下:

<script type="text/javascript" src="/Scripts/MicrosoftAjax.debug.js" ></script>

这在 Views 文件夹中的视图页面中不起作用。我做错了什么,最好的处理方法是什么?

我原以为Url.Content() 至少适用于样式,但在我的母版页中使用,链接呈现

<link href="/Content/css/Site.css rel="stylesheet" type="text/css" /> 

这不起作用,因为母版页位于共享文件夹中,那么真正的前进方向是什么?

【问题讨论】:

  • 嗯,奇怪...我以为我使用了 Url.Content 并且它对我有用;至少,您始终可以使用 ../../ 因为您的所有视图始终位于视图根文件夹深处的一个文件夹中(除非您自定义了该过程)。
  • true 如果部署为虚拟目录而不是网站,这不会弄乱路径吗?必须有某种方法来管理它。我也很惊讶 Url.Content 不起作用,哦,好吧!

标签: javascript asp.net css asp.net-mvc


【解决方案1】:

&lt;link href="&lt;%= ResolveUrl("~/Content/css/Site.css")%&gt;" rel="stylesheet" type="text/css" />

适用于您的样式表。但是如果您在 MVC2 上并且脚本目录中有文件,那么您可以使用新的帮助程序:

<%=Html.Script("scriptfile.js") %>

这是更好的做法,因为您还可以为发布和调试模式指定文件:

<%=Html.Script("scriptfile-min.js", "scriptfile.js") %>

【讨论】:

    【解决方案2】:

    我是这样做的:

    <link href="<%= ResolveUrl("~/Content/css/Site.css")%>" rel="stylesheet" type="text/css" />
    

    此外,如果您不希望它对您有利,请将 runat=server 从您的 head 标签中删除。

    (编辑 - 修正了错误的引用)

    更新:为了澄清,我确实在开发(本地主机:1227,root),我的测试服务器(完整域,root)和生产(不同的域,在一个子目录)。在任何情况下都很好用!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多