正确处理URL - 生产与开发(ASP.NET)

时间:2011-03-04 15:48:09

标签: c# asp.net url

我的生产环境位于主网址www.example.com/sample之外的目录中。我的大多数网址都使用~解析,因此~/default.aspx会解析为www.example.com/sample/default.aspx

但是,我的css javascript没有在生产中正确加载。我将脚本src设置为,例如js/sample.js,我尝试了~/js/sample.js但它没有解决。我在runat="server"标记中尝试了<script>,但有时会出错。我有:

<script runat="server" src="~/js/sample.js?<%=   MyCode.VersionInfo.JSTag %>" type="text/javascript"></script>

这里我将版本代码标记到文件名的末尾以强制在调试期间重新加载,但是,runat=server它会抱怨这一点。

我确定这是一个常见的问题,并且有一个标准的习惯用于处理它,但我似乎无法找到它。有人能帮我吗? ~何时以及如何扩展,以及人们如何处理这类事情?

最有可能的是,当网站进入完全生产状态时,它将在没有子目录的情况下进入,因此我需要系统地处理这个问题。

3 个答案:

答案 0 :(得分:4)

您正在寻找的是:

<script type="text/javascript" src="<%= this.ResolveUrl("~/js/sample.js?" + MyCode.VersionInfo.JSTag) %>"></script>

更多信息here

答案 1 :(得分:0)

只需使用js,css和图像的相对路径,即js / sample.js

答案 2 :(得分:0)

这是一个建议:

<script type="text/javascript" src="<% =HttpRuntime.AppDomainAppVirtualPath & "/js/sample.js"%>"></script>

此外,如果您希望发现此前的路径问题,可以将Web应用程序设置为在Cassini(内置Web服务器)下的虚拟目录下运行。

右键单击Web项目,选择“属性”,选择“Web”,然后键入虚拟路径 - 例如/样品/.