我正在开发一个asp.net mvc3应用程序
我想在视图中使用一些javascript库。我这样包括它
<script type="text/javascript" language="javascript" src="../../Scripts/UserScript.js" ></script>
当地有效。 但是,当我在服务器上部署时,找不到脚本文件。
我做了一些研究,发现它使用的网址是:Root/Scripts/UserScript.js
,而它应该使用Root/MyApplicationName/Scripts/UserScript.js
如何让它使用正确的路径?逻辑上它应该工作,因为../../给了我们相对路径。为什么它从根开始?
我还检查了服务器上的构建,它具有与本地(相同的文件夹树)相同的体系结构。
顺便说一句,这对于任何文件都是一样的(所有图片,脚本和css都以...... / .. /)开头。
非常感谢任何帮助
答案 0 :(得分:3)
您的网络服务器(IIS或Cassini)本地使用虚拟应用程序,因此您的网站根目录不是http://localhost/
,而是http://localhost/MyApplicationName
。
另一方面,在您的生产服务器上,它是一个完整的IIS安装,您的网站被定义为根应用程序(网站)。这就是为什么在本地你有额外的目录级别。
在我看来,最佳做法是在您的开发计算机上安装完整的IIS(或IIS Express),并将您的站点定义为根应用程序(网站),因此您将针对类似于你正在部署的那个。
答案 1 :(得分:0)
您可以使用Razor语法并以这种方式找到它吗?
<script type="text/javascript" language="javascript" src="@Url.Content("~/Scripts/UserScript.js" )" ></script>