2017-02-16 16 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 

、リソース

/iCheck/css?v=ENsQ8JbHO7Zzp1Za0G2FBDKGGsGf_VDHd_S5fgCyCxA1 

これにより、CSS内の画像がfオンド。どうすれば解決できますか?両方のサーバーには、同じ展開バージョンのサイトがあります。なぜ私は1つのサーバーでバンドルが他と異なる動作をするのか理解できません。

+0

1つはバンドルされ、もう1つはバンドルされていません。異なる 'debug'設定(true/false)で各サーバにデプロイしますか?これは、デバッグ/リリースモードでのビルド/パブリッシングまたは異なるweb.configトランスフォームが原因である可能性があります。 –

+0

いいえ...どちらも同じ展開バージョン.....リリースビルド – jstuardo

答えて

0

リリースビルドでバンドルは有効ですが、デバッグでは有効になりません。

プロパティBundleTable.EnableOptimizationsは、開発時のバンドル設定を無効にすることができます。

CSS内の相対パスを修正するには、CssRewriteUrlTransformを参照してください。

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

バンドルが有効になっていないサーバーは、リリースbukldを使用してデプロイされました:2> ------ Publish started:Project:Emergencia、Configuration:リリースx64 ------ 2> C:¥WorkingFolder¥Proyectos¥Lipigas¥Web 2.0¥Monitoreo de Atenciones¥Deploy_x64¥Monitoreo ... 2> C:\ WorkingFolder \ Proyectos \ Webを使用して変換されたWeb.config \ Lipigas \ Web 2.0 \ Monitoreo de Atenciones \ Monitoreo \ Emergencia \ Web.Release.configをobj \ x64 \ Release \ TransformWebConfig \ transformed \ Web.configにコピーします。 2すべてのファイルをpackage/publishの下の一時的な場所にコピーする: – jstuardo

+0

バンドルを使用すると、/ iCheck/css?v = ENsQ8JbHO7Zzp1Za0G2FBDKGGsGf_VDHd_S5fgCyCxA1'がBundlingが有効な正しい場所である場合、複数のファイルが結合され、 。バンドルされたCSSの相対パスを修正するには 'CssRewriteUrlTransform'を使います。バンドル用に複数のファイルがあると仮定すると、そうでなければ、実際には縮小効果が得られます。あなたのビューに '/ Content/iCheck/flat/green.css'と同じパスを使用することを期待している場合は特に、バンドル内に1つのファイルがあるだけでは意味がありません。リソースがどこから取得されたかを示すツールはどれですか? –

+0

Firebugは、リソースが取得されている実際のパスを示しています..... CSS内に画像を参照するURL命令がある場合、CssRewriteUrlTransformを使用してURLをどのように変換できますか?しかし、最も興味があるのは、サイトを公開して(もちろん、リリースビルドで)、2つの異なるサーバーに同じ公開ファイルをexaclyコピーした場合です。なぜ1つのサーバーで、リソースは他のサーバーではなく、それらが縮小されていますか? – jstuardo

関連する問題