2017-01-02 16 views
2

運行我BundleConfig.cs簡單地包括腳本C#MVC StyleBundle和ScriptBundle如果項目在子目錄

bundles.Add(new ScriptBundle("~/bundles/ui-scripts").Include(
         "~/Scripts/ui-scripts.js")); 

在我的區域的機器有這樣的代碼不正確的渲染路徑(http://localhost:57210/)這呈現爲

<script src="/Scripts/ui-scripts.js"></script> 

本地所有工作正常。

的問題是,我們有上團隊市在項目下的子文件夾 (http://testserver.com/myApp/)運行運行測試服務器,但呈現的輸出是一樣的

<script src="/Scripts/ui-scripts.js"></script> 

導致UI的腳本的.js無法加載(404),因爲它試圖從http://testserver.com/Scripts/ui-scripts.js加載腳本這當然是不存在的,因爲腳本是在http://testserver.com/對myApp /Scripts/ui-scripts.js

我預想的框架意識到〜指向的項目,在我的情況是http://testserver.com/myApp/

如果我能優化

BundleTable.EnableOptimizations = true; 

輸出呈現優化的根源,但仍錯誤的位置,再次錯過了對myApp

<script src="/bundles/ui-scripts?v=mRQZjAGbYccSwhcFn4iouztfiK3Xjwik5TtdvD58fHM1"></script> 

此外, 如果我不使用捆綁,而是在_Layout.cshtml,我想劇本出現,在這樣

<script src="~/Scripts/ui-scripts.js"></script> 

然後路徑在服務器上正確識別的代碼編寫到

<script src="/myApp/Scripts/ui-scripts.js"></script> 

此外, 如果我創建在我的本地和存儲應用程序有子目錄,路徑正確解析。

StyleBundle也出現同樣的問題。任何想法我可以嘗試?

回答

0

我發現了這個問題。測試服務器上的IIS配置出現問題。 該項目實際上有它自己的子域分配給它,並不應該從子目錄運行。 擺弄IIS設置解決了這個問題。