我构建了一个使用ExtJS的简单ASP MVC4应用程序。
我的主视图具有指向我的主employee.js文件的链接:
<script src="app/employee.js" type="text/javascript"></script>
我正在将应用程序发布到本地网络中的服务器。
在我访问URL的开发计算机上,
http:\\local-iis\holidays
应用程序已正确加载并显示。但是在同一网络中的其他3台计算机上,我得到了错误,因为浏览器找不到该js文件。
我的项目结构如下所示:
--holidays (project name) +--app +--myapp.js +--Controllers +--Models +--(rest of ASP folders)
On my development machine when I access http:\\local-iis\holidays
on chrome and I inspect source I see line:
<script src="app/employee.js" type="text/javascript"></script>
我将条目翻转后
我看到正确的路径:
http:\\local-iis\holidays\app\employee.js (I translated urlopy to holidays)
在其他计算机上具有相同页面的源目录名称被删除(
holidays
)我尝试清除缓存,安装其他浏览器,切换到其他计算机,但是一切都失败了,在某些计算机上这是可行的,而在某些计算机上则不是。
我不是在寻求特定的解决方案,而是从入门入手。
这是我在MVC 4中的第一个项目,我不知道如何配置应用程序以使这些url正常工作。
我不知道为什么我的应用程序要删除该目录名称(它指的是本地iis服务器的根目录)
我在ExtJS论坛上问,他们说这可能是IIS或ASP设置问题。
最佳答案
决不要在ASP.NET MVC应用程序中对URL进行硬编码:
<script src="app/myapp.js" type="text/javascript"></script>
只需使用助手:
<script src="~/app/myapp.js" type="text/javascript"></script>
~/app/myapp.js
将正确地通过Url.Content
帮助器,无论您的应用程序托管在何处,该帮助器都会生成正确的url。例如,如果您的应用程序在IIS Express中本地托管,则它可能如下所示:<script src="/app/myapp.js" type="text/javascript"></script>
当部署在IIS的虚拟目录中时,它可能如下所示:
<script src="/holidays/app/myapp.js" type="text/javascript"></script>
助手会照顾好它。
在Razor v1.0(ASP.NET MVC 3)中,您必须显式使用帮助程序:
<script src="@Url.Content("~/app/myapp.js")" type="text/javascript"></script>
关于javascript - 子目录中的javascript文件未加载,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15706106/