1

我正在开发一个 asp.net mvc3 应用程序

我想在视图中使用一些 javascript 库。我以这种方式包含它

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

在本地它有效。但是,当我在服务器上部署时,找不到脚本文件。

我做了一些研究,发现它使用的 url as: Root/Scripts/UserScript.jswhile it should useRoot/MyApplicationName/Scripts/UserScript.js

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

我还检查了服务器上的构建,它具有与本地相同的架构(相同的文件夹树)。

顺便说一句,这对于任何文件都是一样的(所有以 ../../ 开头的图片、脚本和 css)

任何帮助是极大的赞赏

4

2 回答 2

3

在本地,您的 Web 服务器(IIS 或Cassini)使用虚拟应用程序,因此您的站点的根不是,比如说,http://localhost/而是http://localhost/MyApplicationName.

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

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

于 2012-07-23T15:53:39.177 回答
0

你可以使用 Razor 语法并以这种方式定位它吗?

<script type="text/javascript" language="javascript" src="@Url.Content("~/Scripts/UserScript.js" )" ></script>
于 2012-07-23T15:55:35.610 回答