2012-03-01 62 views
18

可有人请解释为什么我应该使用(或应该我?):为什么使用@ Url.Content

<script type="text/javascript" src="@Url.Content("/Scripts/SomeScript.js")"></script> 

VS

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

感谢

回答

26

片段@Url.Content("/Scripts/SomeScript.js")绝对没有,相当于/Scripts/SomeScript.js。如果您将Web应用程序部署到根文件夹下的虚拟目录MyVirtualDirectory中,那么对于以“〜”开头的路径,它会将url转换为正确的应用程序相对url,例如,@Url.Content("~/Scripts/SomeScript.js")可能会翻​​译为/MyVirtualDirectory/Scripts/SomeScript.js的网站。

+1

+1,与其他词:'Url.Content'确保所有环节的工作无论该网站是在一个虚拟目录或网站的根目录。 – jgauffin 2012-03-01 12:33:45

+16

只是附加的注释:'Url.Content'它是一个很大的帮助,到目前为止,但在MVC4/Razor2.0它不再需要,我们现在可以使用:'SRC =“〜/脚本/ SomeScript.js”'。 – GolfWolf 2012-03-01 13:07:37

+0

此外,因为默认的'type'是'文/ javascript'这是确定要离开它。对于所有当前的甚至是旧的浏览器都可以。 – Aaron 2014-08-29 06:02:56