2012-07-23 127 views
1

我正在使用asp.net mvc3应用程序部署到服务器时不正确的文件路径

我想在视图中使用一些JavaScript库。我这样包括它

本地它的工作原理。 但是,当我在服务器上部署脚本文件时,无法找到。

我做了一些研究,发现它使用的URL为:Root/Scripts/UserScript.js,而应使用Root/MyApplicationName/Scripts/UserScript.js

我怎样才能使它使用正确的路径?从逻辑上讲,它应该起作用,因为../../给了我们相对路径。为什么它从根开始?

我也检查了服务器上的构建,并且它具有与本地相同的体系结构(相同的文件夹树)。

顺便说一句,这是对任何文件(与开始的所有图片,脚本和CSS ../../)

任何帮助是极大的赞赏

回答

0

您可以使用Razor语法并找到它吗?

<script type="text/javascript" language="javascript" src="@Url.Content("~/Scripts/UserScript.js")" ></script> 
3

本地Web服务器(IIS或相同Cassini)使用虚拟应用程序,因此您的网站的根目录不是,例如http://localhost/而是http://localhost/MyApplicationName

另一方面,在您的生产服务器上,它是一个完整的IIS安装,您的网站被定义为根应用程序(网站)。这就是为什么本地你有额外的目录级别。

在我看来,最佳实践是在您的开发机器上安装完整的IIS(或IIS Express),并将您的网站定义为根应用程序(网站),因此您将针对相似的环境进行编程到您正在部署的人。