2017-02-16 37 views
0

這很奇怪。ASP.NET MVC5中不良資源路徑

當我這一點,例如,在我的BundleConfig類:

bundles.Add(new StyleBundle("~/iCheck/css").Include(
       "~/Content/iCheck/flat/green.css")); 

bundles.Add(new ScriptBundle("~/iCheck/js").Include(
       "~/Scripts/icheck.js")); 

在服務器中,資源從正確的位置檢索:

/Content/iCheck/flat/green.css 

然而,在其他的服務器資源使用此URL檢索:

/iCheck/css?v=ENsQ8JbHO7Zzp1Za0G2FBDKGGsGf_VDHd_S5fgCyCxA1 

這會導致CSS中的圖像不是f ound。我該如何解決它?在這兩個服務器中都有相同的網站部署版本。我不明白爲什麼在一臺服務器中,捆綁包的行爲與其他服務器有所不同。

+0

其中一個是捆綁的,另一個不是。你是否使用不同的'debug'設置(true/false)來部署到每個服務器?這可能是因爲在調試/發佈模式下構建/發佈或不同的web.config轉換。 –

+0

不......兩個都是相同的部署版本......在發佈版本 – jstuardo

回答

0

綁定啓用了發佈版本,但不適用於調試。

屬性BundleTable.EnableOptimizations將允許您覆蓋開發中的綁定設置。

修正CSS中的相對路徑請看CssRewriteUrlTransform

.Include("~/Content/iCheck/flat/green.css", new CssRewriteUrlTransform()) 
+0

捆綁未啓用的服務器wwas使用發佈bukld進行了部署:2> ------發佈開始:項目:Emergencia,配置:版本x64 ------ 2>連接到C:\ WorkingFolder \ Proyectos \ Lipigas \ Web 2.0 \ Monitoreo de Atenciones \ Deploy_x64 \ Monitoreo ... 2>轉換後的Web.config使用C:\ WorkingFolder \ Proyectos \ Lipigas \ Web 2.0 \ Monitoreo de Atenciones \ Monitoreo \ Emergencia \ Web.Release.config到obj \ x64 \ Release \ TransformWebConfig \ transformed \ Web.config。 2>將所有文件複製到以下臨時位置以進行打包/發佈: – jstuardo

+0

如果您使用包,則啓用捆綁功能時,「/ iCheck/css?v = ENsQ8JbHO7Zzp1Za0G2FBDKGGsGf_VDHd_S5fgCyCxA1」是正確的位置,將多個文件組合並縮小爲單個資源。要在綁定的CSS中修復相對路徑,請使用'CssRewriteUrlTransform'。我假設你有多個文件捆綁,否則你真的只是獲得縮小收益。如果你希望在你的視圖中使用相同的路徑'/ Content/iCheck/flat/green.css',那麼在bundle中只有一個文件沒有意義。什麼工具向您顯示從哪裏獲取資源? –

+0

Firebug正在顯示獲取資源的實際路徑.....如果CSS內部存在指向圖像的url指令,如何使用CssRewriteUrlTransform來轉換URL?然而,最令人好奇的是:如果我已經發布了該網站(當然,在發佈版本中),並且在2個不同的服務器上覆制了相同的已發佈文件。爲什麼在一臺服務器上,資源被縮小,而在其他服務器上卻不是? – jstuardo