部署到服务器时文件路径不正确

时间:2012-07-23 15:51:55

标签: asp.net relative-path

我正在开发一个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都以...... / .. /)开头。

非常感谢任何帮助

2 个答案:

答案 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>
相关问题