2010-05-11 45 views
4

我试图包含脚本和样式引用,不会中断部署,但我甚至无法获取引用以在本地工作。我试过使用Url.Content()和MVCContrib的<%=Html.ScriptInclude("")%>asp.net mvc脚本和样式引用

我的脚本位于站点根目录下的脚本文件夹中;我的风格在通常的 Content/css /文件夹中。

脚本呈现这样的:

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

这将在视图页面在浏览文件夹无法正常工作。我做错了什么,处理这个问题的最好方法是什么?

我还以为Url.Content()将为风格至少工作,但在我的母版页中使用时,链接呈现

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

这是不行的,因为母版页是在共享文件夹,那么是什么真的是这样的前进之路吗?

+0

呵呵,奇怪......我以为我用了Url.Content,它对我有用;至少,您可以始终使用../../,因为您的所有视图总是位于视图根文件夹内的一个文件夹(除非您自定义该过程)。 – 2010-05-11 19:00:16

+0

真的如果部署为虚拟目录,而不是网站,这会不会弄乱路径?必须有某种方式来管理这一点。我也很惊讶,Url.Content不起作用,哦! – tom 2010-05-11 22:01:27

回答

5

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

作品样式表。但如果你是在MVC2,你必须在脚本目录中的文件,那么你可以使用新的帮手:

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

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

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

+1 - 不知道! – Chris 2010-05-11 22:52:43

0

我不喜欢这样写道:

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

此外,采取RUNAT =服务器出你的头标记的,如果你不希望它试图做你不看好。

(编辑 - 固定错位的报价)

更新:为了澄清,我其实确实有这方面的工作在发展中(本地主机:1227,根),我的测试服务器上(全域,根)和生产中(不同的领域,在一个子目录中)。在任何情况下都很棒!