所以我在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应用程序
我做错了什么?
答案 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/),并且您编写了一个而不是另一个。
编辑: