問題タブ [system.web.optimization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
155 参照

asp.net-mvc - スタイルのコンパイル、バンドル、縮小

ウェブサイトのコンテンツを最適化するさまざまな方法について何ヶ月も学んできましたが、どの「最適化ワークフロー」がどのような効果をもたらすかなど、正しい方法についてはまだ混乱しています。

ASP.NET MVCは、' Microsoft.Web.Infrastructure ' パッケージを通じて独自の最適化フレームワークを提供します。これにより、リクエストに応じて、またはアプリケーションの起動時に、バンドルと縮小戦略をコードで直接定義できます。ただ、私のスタイルファイルはlessで書かれているので事前にコンパイルしておく必要があり、アプリケーション全体の起動プロセスが遅くなる可能性があるため、アプリケーションのビルドプロセス中にコンパイルした方がよいのではないかと感じています。しかし、繰り返しになりますが、ほとんどのスタイルシート コンパイラでは、バンドルと最小化を直接行うことができます。

  1. アプリケーションのコンパイル時にLESSファイルをコンパイルする必要があります
  2. 必要なクライアント リクエストの量を減らすために、CSSファイルをバンドルする必要があります。
  3. トラフィックと全体的なページ コンテンツ サイズを減らすために、CSSファイルを最小化する必要があります。

それで、これを達成するための提案された方法は何ですか?

  1. ビルド時にLESSファイルをコンパイルします (ドットレスなどを使用)
  2. アプリケーションをサーバーにデプロイする
  3. 最適化バンドルを使用して、リクエストに応じてバンドルおよび縮小しますか?

このバンドルと縮小は、ASP.NET ライフサイクルでいつ行われますか? Web アプリケーションの最初の起動時? リクエストごとに?

0 投票する
3 に答える
7148 参照

asp.net - ASP.NET MVC 4 バンドルで 404 エラーが発生する

以下を使用する既存の ASP.NET MVC 4 (.NET 4.5) Web サイトにバンドルを追加したいと考えています。

https://gist.github.com/jkarsrud/5143239の指示に従おうとしましたが、バンドル パスを開始する前に CSS が正常に読み込まれました。

ページの読み込み時に、スタイル参照が挿入されます。

しかし、404 エラーが発生します。

ここに私がコードで持っているものがあります:

Web.Config

Global.asax

Global.asax.cs

_Layout.cshtml

BundleConfig.cs

何か案は?

0 投票する
1 に答える
564 参照

asp.net-mvc - マルチテナント ASP MVC アプリケーションのバンドル

ASP MVC を使用してマルチテナント アプリケーションを開発しています。テナントはサブドメインで識別されます。バンドルと縮小に System.Web.Optimization と BundleTransformer.Less を使用しています。

UI は、テナントごとに特定の LESS 変数のセットを適用することで、テーマを設定できます。これらの変数は DB に格納されます。

https://stackoverflow.com/users/1292362/andrey-taritsynの提案に従って、カスタム VirtualPathProvider を実装して、それらを必要とするより少ないファイルに少ない変数を挿入しました。それは魅力のように機能します!

ただし、バンドルとキャッシングの管理方法については疑問があります。

  1. 可能なすべてのテナントを取得し、App_Start でそれぞれのバンドルを登録する必要がありますか? (このオプションは好きではありません。使用されることがない、またはたまにしか使用されない可能性のあるバンドルを登録する必要があり、再起動せずに新しいテナントの新しいバンドルを登録する問題も解決する必要があるためです)。

  2. すべてのリクエストを監視し、テナントのバンドルが存在するかどうかを確認し、存在しない場合は登録する必要がありますか?

  3. 最適な解決策は、バンドルを App_Start で 1 回だけ宣言し、テナントのサブドメインへの最初の要求が入ったときにバンドル応答を作成してキャッシュに保存することです。

現在、オプション 3 を実装しており、機能していますが、内部で実際に何が起こっているのかはわかりません。

  • バンドルとテナントを識別するためにキャッシュ キーをカスタマイズするにはどうすればよいですか? これまでのところ、私はこれをしました:

    • バンドルは同じ仮想パスで識別されますが、多くのバンドル応答がキャッシュされていますか (テナント固有)? または、上書きされているバンドル応答が 1 つだけですか?

    • レイアウトでテナント固有のバンドル応答を取得するにはどうすればよいですか? @Styles.Render("~/bundles/css/common") を実行するとどうなりますか? 仮想パスとテナント に基づいてバンドル レスポンスを識別していますか?

0 投票する
4 に答える
4801 参照

asp.net-mvc - パブリッシュ後に MVC4.5 とのバンドルが機能しない

アプリケーションのスクリプトとスタイルのブートストラップをバンドルしようとしています。デバッグは機能していますが、公開するときに、スクリプトとスタイルを読み込まないでください。

BundleConfig (BootstrapBundleConfig) を追加します

これをグローバルに登録する

_layaout でスタイル/スクリプトを設定します

しかし、それを公開し、View Page Sourceを開くと

このファイルを開くと、最初の行でエラーが発生します。

Google で検索し、さまざまな方法を使用しましたが、エラーは解決しません。

  1. すべてのスタイルを特別なパス (Content/Them/Bootstrap) に追加して使用しますnew StyleBundle("~/content/Them/Bootstrap")

  2. 使用するBundleTable.EnableOptimizations = true;

他の..

0 投票する
1 に答える
257 参照

.net - System.Web.Optimization を再コンパイルしてキャッシュ ヘッダーを変更する

System.Web.Optimization を再コンパイルして、Bundle.cs のキャッシュ ヘッダーを変更したいと考えています (CDN は Vary ヘッダーが好きではありません)。ヘッダーをオーバーライドする方法は他にないようです。(Resharper を使用して) ソースを逆コンパイルし、変更を加え、ソースを再コンパイルすることはできますが、プロジェクトへの参照を追加すると、依存するすべての Nuget パッケージでエラーが発生します。以下のものに似ています。

タイプ 'System.Web.Optimization.IBundleBuilder' は、参照されていないアセンブリで定義されています。アセンブリ 'System.Web.Optimization, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' への参照を追加する必要があります

すべての依存関係をコンパイルする必要はありません。また、キャッシュ ヘッダーをオーバーライドする他の手段も受け入れています。HTTPModules、IIS など。

0 投票する
1 に答える
10865 参照

c# - ファイルまたはアセンブリ 'System.Web.Optimization' またはその依存関係の 1 つを読み込めませんでした

Visual Studio 2013 の Asp.net MVC 5 プロジェクトで問題が発生しています。System.Web.Optimization の DLL はバージョン 1.1.40211.0 ですが、プロジェクトの参照の下では、バージョンが 1.1.0.0 であると表示されています。

私が持っていないバージョンを探しているコードを確認する方法がわかりません。

助けてくれてありがとう!

以下のエラー

0 投票する
1 に答える
839 参照

css - ASP.net MVC を使用した LESS CSS のリソースの絶対パス

他にも質問があることは知っていますが、必要な答えはありません。

画像 (など) が正しく取得されるように、MVC ページに含まれる一部の LESS で絶対パスを強制できるようにする必要があります。

バンドルにも含まれていません。_Layout.cshtml に直接含まれているだけです。

Site_styles.less には

しかし、私はそれを絶対にすることはできません。

それは次のようにレンダリングされます


念のため、他の LESS [bootstrap etc]こんな風にまとめてあります

BundleTable.EnableOptimizations = false;