在我的应用程序中,我经常必须使用相对路径。例如,当我引用 JQuery 时,我通常是这样做的:
<script type="text/javascript" src="../Scripts/jquery-1.2.6.js"></script>
现在我正在转换到 MVC,我需要考虑一个页面相对于根目录可能拥有的不同路径。这当然是过去 URL 重写的一个问题,但我通过使用一致的路径设法解决了这个问题。
我知道标准的解决方案是使用绝对路径,比如:
<script type="text/javascript" src="/Scripts/jquery-1.2.6.js"></script>
但是这对我不起作用,因为在开发周期中,我必须将应用程序部署到一个测试机器上,该机器上的应用程序将在一个虚拟目录中运行。当根更改时,根相对路径不起作用。另外,出于维护原因,我不能简单地在部署测试期间更改所有路径——这本身就是一场噩梦。
那么最好的解决办法是什么?
编辑:
由于这个问题仍然在接收视图和答案,所以我认为更新它是明智的,因为在 Razor V2中,支持根相对 URL,所以您可以使用
<img src="~/Content/MyImage.jpg">
没有任何服务器端语法,并且视图引擎会自动用当前站点根目录替换 ~/。