子目录中的javascript文件未加载

时间:2013-03-29 15:18:33

标签: javascript asp.net-mvc asp.net-mvc-4 iis-7.5

我构建了一个使用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>
翻转该条目后

enter image description here

我看到正确的路径:

http:\\local-iis\holidays\app\employee.js  (I translated urlopy to holidays)
在其他计算机上删除相同页面源目录名称的

holidays

我尝试清除缓存,安装其他浏览器,切换到其他计算机,但一切都失败了 - 在某些计算机上这是有效的,有些则不然。

我不是要求具体的解决方案,而是要开始使用。

这是我在MVC 4中的第一个项目,我不知道如何配置我的应用程序以使这些网址正常工作。

我不知道为什么我的应用程序正在删除该目录名称(它指的是我的local-iis服务器的根目录)

我在ExtJS论坛上问过,他们说这可能是IIS或ASP设置问题。

1 个答案:

答案 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>
相关问题