4

私はasp.net mvc4と、ドットレスを使用したカスタムLessTransformを備えたSystem.Web.Optimizationライブラリ(1.1.0)を使用してMSが提供する組み込みのバンドルと縮小を使用しています。このサイトは IIS 7 でホストされています。私の問題は、断続的に Web サイトでバンドルが空になり、Web サイトがすべて奇妙に読み込まれることです。

http://site/Content/surveycss?

何が原因でしょうか?

アップデート

  1. less コンパイラでエラーが発生すると、バンドルが空になる可能性があることを読みました。エラーについて less をテストしましたが、エラーはありません。

  2. Content ディレクトリを使用するようにバンドルを構成する方法に問題がある可能性があることを発見したので、次のように変更しました。

        bundles.Add(new StyleBundle("~/Content/bootstrap")
            .Include(...));
    

に:

        bundles.Add(new StyleBundle("~/cssbundles/bootstrap")
            .Include(...));

アプリケーションを再デプロイした後、問題が解決したように見えました。しかし、それは再び起こっています。セットアップは、2 つの IIS サーバーを備えたロード バランサーです。今日、サーバー 1 にログオンし、IIS 経由でサイトを閲覧しましたが、正常に読み込まれています。

サーバー 2 にログオンし、IIS 経由でサイトを参照すると、バンドルの問題が発生します。

更新 2

リソースが使用されている可能性があるという考えをテストするため。問題の原因となったバンドルの一部である少ないファイルを削除してみました。以下のファイルが正常に削除されました。.less ファイルを復元すると、サーバーを直接参照すると問題が解消されました。

アップデート 3

この問題は、dotless を使用していないバンドルと負荷分散されていない開発サーバーで発生し始めました。

    bundles.Add(new StyleBundle("~/cssbundles/bootstrap")
        .Include("~/Content/bootstrap/bootstrap.css"));

これは、nuget パッケージのアップグレードと、ファイルが参照された場所に存在しなくなったために発生しました。他のすべてのバンドルを再確認して、ファイルが参照されている場所にまだ存在していることを確認したので、それは問題ではありません。

更新 4

dotless 構成にロギングを追加し、次のメッセージを受け取りました。

06-12-2013 16:08:07.814,10.183.130.143,demo.app.com,/cssbundles/bundlecss?v=WN4weCPcGs3GJ_Hgsm2B7qNotYNgbrMS6xwEt8SWK6M1,user@email.com,"
directive block with unrecognised format on line 1:
   []: /beginning of file
  [1]: @v: WN4weCPcGs3GJ_Hgsm2B7qNotYNgbrMS6xwEt8SWK6M1;
       ^
  [2]: @import ""~/Content/variables.less"";",Error,""

考え?

4

1 に答える 1

2

ファイルの値が誤って に設定されたため、まさにこのシナリオが発生しました ( v=[no value]) 。これは、ファイルが異常な方法でプロジェクトに追加され、名前が に変更されたために発生しました。VS.NET はもともとファイル タイプを認識していなかったため、そのプロパティを に設定しました。Build Action.lessNone.lessBuild Actionnone

.lessファイルの構成が にBuild Action設定されていることを確認してCompile、実際のファイルをビルドに含めることができるようにします。これは、問題が存在するためローカルで発生しない理由でもありますが、展開されると失われます。

于 2015-07-21T21:14:15.457 に答える