我构建了一个使用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)
在我的开发机器上,当我在chrome上访问http:\\local-iis\holidays
并且我检查源时,我看到了行:
<script src="app/employee.js" type="text/javascript"></script>
翻转该条目后
我看到正确的路径:
http:\\local-iis\holidays\app\employee.js (I translated urlopy to holidays)
在其他计算机上删除相同页面源目录名称的(holidays
)
我尝试清除缓存,安装其他浏览器,切换到其他计算机,但一切都失败了 - 在某些计算机上这是有效的,有些则不然。
我不是要求具体的解决方案,而是要开始使用。
这是我在MVC 4中的第一个项目,我不知道如何配置我的应用程序以使这些网址正常工作。
我不知道为什么我的应用程序正在删除该目录名称(它指的是我的local-iis服务器的根目录)
我在ExtJS论坛上问过,他们说这可能是IIS或ASP设置问题。
答案 0 :(得分:6)
永远不要在ASP.NET MVC应用程序中硬编码网址:
<script src="app/myapp.js" type="text/javascript"></script>
只需使用助手:
<script src="~/app/myapp.js" type="text/javascript"></script>
~/app/myapp.js
将正确浏览Url.Content
帮助程序,无论您的应用程序托管位置如何,都会生成正确的网址。例如,如果您的应用程序在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>