我构建了一个使用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/

10-13 02:19
查看更多