在我的应用程序中,我经常需要使用相对路径.例如,当我引用JQuery时,我通常这样做:
<script type="text/javascript" src="../Scripts/jquery-1.2.6.js"></script>
Run Code Online (Sandbox Code Playgroud)
现在我正在转换到MVC,我需要考虑页面可能具有的相对于根的不同路径.这当然是过去URL重写的问题,但我设法通过使用一致的路径来解决它.
我知道标准解决方案是使用绝对路径,例如:
<script type="text/javascript" src="/Scripts/jquery-1.2.6.js"></script>
Run Code Online (Sandbox Code Playgroud)
但这对我来说不起作用,因为在开发周期中,我必须部署到应用程序将在虚拟目录中运行的测试机器上.根更改时,根相对路径不起作用.此外,出于维护原因,我不能简单地在部署测试期间更改所有路径 - 这本身就是一场噩梦.
那么什么是最好的解决方案?
编辑:
由于这个问题仍在接收观点和答案,我认为更新它可能是谨慎的,因为从Razor V2开始,支持根相对网址,所以你可以使用
<img src="~/Content/MyImage.jpg">
Run Code Online (Sandbox Code Playgroud)
没有任何服务器端语法,视图引擎自动替换〜/当前站点根目录.
如果没有框架抛出异常500错误代码,我怎么能处理404错误?