.Net 4.0 Web应用程序发布 - 无法找到资源

时间:2012-04-03 10:34:42

标签: asp.net web-applications .net-4.0 publish

所以我在c:\ inetpub \ wwwroot \ myTestApp下发布我的.Net 4.0 ASP.NET Web应用程序。但是,每当我尝试通过浏览器访问它时(使用http://localhost/myTestApp),似乎应用程序找不到任何资源(脚本,图像等)

当我查看请求时,我看到它以某种方式请求 http://localhost/myTestApp/myTestApp/Scripts/jquery.validate.min.js 代替 http://localhost/myTestApp/Scripts/jquery.validate.min.js

更多信息:
1.当我使用开发服务器/ IIS进行调试时,它可以正常工作 2.如果我直接将该应用程序作为网站发布,它也可以正常工作 3.我正在尝试发布应用程序的文件夹位于“默认网站”下,我已将其配置为IIS下的Web应用程序

我做错了什么?

1 个答案:

答案 0 :(得分:1)

在您的aspx文件中,您是如何引用资源的?我怀疑你在绝对,相对和应用程序相对路径方面存在问题。

而不是

<script src="myTestApp/Scripts/jquery.validate.min.js" />

要提供绝对网址,请使用以下

之一
<script src="~/Scripts/jquery.validate.min.js" runat="server" />
<script src="<%= ResolveClientUrl("~/Scripts/jquery.validate.min.js") %>" />

或者使用需要使用相对路径,例如

<script src="../Scripts/jquery.validate.min.js" runat="server" />

如果可以,我会避免亲戚,因为如果你在一个目录中有一个母版页,在另一个目录中有一个页面,在第三个位置有一个子控件,它会变得很尴尬和混淆。

基本上,您使用服务器端的〜来引用应用程序的根目录。

我认为您的问题源于这样一个事实:开发服务器和IIS的应用程序根目录位于不同级别(一个位于http://localhost/,另一个位于http://localhost/myTestApp/),并且您编写了一个而不是另一个。

编辑:

另见Relative Paths in Javascript in an external file