2013-03-29 49 views
0

我構建了一個簡單的使用ExtJS的ASP MVC4應用程序。在子目錄中的JavaScript文件不加載

我的主要觀點有鏈接到我的主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中的第一個項目,我不知道如何配置我的應用程序以使這些URL工作。

我不知道爲什麼我的應用程序被刪除該目錄的名稱(這是指我的本地IIS服務器的根目錄)

我問的ExtJS的論壇,他們說這可能是IIS或ASP的設置問題。

+0

反斜槓扔我。你真的有這個或你的意思是'/' –

+0

@MikeChristensen反斜槓你的意思是? – Misiu

+0

所有這些。例如,'http:\\ local-iis \ holidays \ app \ employee.js' –

回答

6

在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幫手這反過來將產生正確的網址無論您的應用程序託管在哪裏。因爲如果你的應用程序在IIS快遞本地託管例如,它可能是這樣的:

<script src="/app/myapp.js" type="text/javascript"></script> 

,並在虛擬目錄部署時在IIS中它可能是這樣的:

<script src="/holidays/app/myapp.js" type="text/javascript"></script> 

的助手將採取照顧它。

在剃刀V1.0(ASP.NET MVC 3)你必須明確地使用助手:

<script src="@Url.Content("~/app/myapp.js")" type="text/javascript"></script> 
+0

我試過了,我能夠加載我的主文件,但其餘的js文件不能像這樣配置,因爲它們是使用ExtJS動態加載的。當我將應用程序移動到普通文件夾時,它正在加載正確,但我需要它從ASP.NET文件夾加載 – Misiu

+1

在這種情況下,您可以將應用程序的基本根網址傳遞到您的JavaScript文件。它應該在服務器上計算。例如,你可以有一個全局的JavaScript變量:';'然後你會在你的腳本中使用它。不要尋找奇蹟,沒有任何。你永遠不應該硬編碼url,並且如果你想讓它正常工作,總是在ASP.NET MVC應用程序中使用url helper。每當你硬編碼一個網址,它就會破壞。 –

+0

因此,ASP.NET應用程序沒有任何配置選項來禁用子目錄刪除?我可能是錯的,但這應該是一個選項,並不總是應用程序必須在根。 – Misiu

相關問題