【发布时间】:2011-03-04 15:48:09
【问题描述】:
我的生产环境位于主 url www.example.com/sample 之外的目录中。我的大多数 URL 都使用 ~ 解析得很好,所以 ~/default.aspx 解析为 www.example.com/sample/default.aspx。
但是,我的 css javascript 都没有在生产中正确加载。例如,我将脚本 src 设置为js/sample.js,并且我尝试了~/js/sample.js,但它无法解决。我在<script> 标签中尝试了runat="server",但有时会出错。我有:
<script runat="server" src="~/js/sample.js?<%= MyCode.VersionInfo.JSTag %>" type="text/javascript"></script>
在这里,我将版本代码标记到文件名的末尾以在调试期间强制重新加载,但是,runat=server 会抱怨这一点。
我确定这是一个常见问题,并且有一个处理它的标准习语,但我似乎找不到它。有人能帮我吗? ~ 何时以及如何扩展,人们如何处理这类事情?
很可能当网站完全投入生产时,它会在没有子目录的情况下进入,所以我需要系统地处理这个问题。
【问题讨论】:
-
我想出的唯一解决方案是使用其他人建议的
ResolveUrl构造。我发现这种情况非常令人沮丧,因为它简直丑陋:-(