問題タブ [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.
asp.net-mvc - System.Web.Optimization をクラス ライブラリ内のカミソリ ビューで動作させる
各モジュール (= 領域) がクラス ライブラリであるモジュラー MVC4 アプリを構築しています。モデルとコントローラーは .dll にコンパイルされ、ビューは適切なフォルダーにコピーされます。実行時には、すべて正常に動作します。設計時には厄介な問題が 1 つ残っています。それは、クラス ライブラリ内で Razor ビューを編集するときに、Visual Studio が System.Web.Optimization 名前空間を認識しないことです。
ルートと内部 web.config の system.web/compilation セクションにアセンブリを追加しようとしました。
特定のバージョンなしでも試してみました。どちらの方法でも問題は解決しませんでしたが、asp.net ランタイム エラーが発生しました (カミソリ ビューの最初の行に表示されます)。
アセンブリがプロジェクトで参照され、「ローカルにコピー」が「True」に設定されています。また、かみそり構成セクションに名前空間として追加されます。
将来、他のアセンブリで遭遇する一般的な問題だと思います。
編集:クラス ライブラリ内のカミソリ ビューで Intellisense を使用するための一般的なセットアップを行いました。VS2010 が最適化名前空間を認識しないことを除いて、これまでのところすべてが機能しています。
.net - System.Web.OptimizationバンドルをIIS仮想ディレクトリのカスタムフォルダーで機能させるにはどうすればよいですか?
私はasp.netmvc4を持っています。IIS仮想ディレクトリを使用してこのアプリケーション内にサブディレクトリとして展開されるモジュールがあり、これらのモジュール内のファイルを参照する必要があります。これらのモジュールdllはバンドルを登録しています。しかし、バンドルはhtmlページに何も生成していません。
この投稿、is-it-possible-to-unit-test-bundleconfig-in-mvc4から、バンドルが内部的にServer.MapPathを使用していることがわかります。だから、うまくいくようです。
私はBundleTable.MapPathMethodをフックし、Server.MapPathを自分で呼び出しました。これは、正しい物理ディレクトリに正しく解決されます。ただし、それでもhtmlページには何もレンダリングされません。
次に、カスタムフォルダの「AddDirectory」関数について言及したこの投稿、why-does-resolvebundleurl-not-work-for-custom- foldersがありましたが、この関数は最新の最適化ライブラリでは使用できなくなりました。
新しい「IncludeDirectory」メソッドを使用してみましたが、それも機能しませんでした
この作品を作るために他に何かできることはありますか?
2012年8月27日
問題の解決:基本的に、System.Web.Optimizationは、サブIIS仮想ディレクトリであるWebURLでは機能しません。
問題は、BundleResolver.GetBundleContents内のこれらのコード行です。
これは基本的に、バンドルされるすべてのファイルがプライマリWebアプリケーションのPHYSICALフォルダーの下にあるPHYSICALフォルダーにあることを前提としています。
問題、IMOは、含めるファイルを検索するWeb相対URLパスが非常に早い段階で物理パスに変換され、それらの物理ファイルを取得するために使用された相対URLパスへのすべての参照が破棄されることです。
したがって、これを機能させることができるかどうかを確認するには、System.Web.Optimizationをベアコードに逆コンパイルしてから、再度コンパイルして「修正」する必要がありました。最初のステップは、BundleItemにRelativePathプロパティを追加することでした。これは、BundleItemに追加のコンストラクターを追加して、ソース相対URLパスを渡し、Web相対検索ディレクトリフォルダーが何であったかを保持します。次に、上記のコードをループに置き換えてから、基本的にBundleItemで見つかったファイルを再照合して、有効なWebURLに変換できるようにします。
これで、バンドルが適切にレンダリングされます。ただし、このハック修正のリリース、最適化、縮小化についてはまだテストしていないことに注意してください。
asp.netチームは、System.Web.OptimizationsがIIS仮想ディレクトリ内のファイルをサポートするようにする必要があると本当に思います。特に、VS2012がIIS Expressをサポートするようになったため、IIS仮想ディレクトリを介して参照されるファイルを使用してモジュラーWebアプリを簡単に構築できるようになります。
asp.net-mvc-3 - ミニファイから単一のファイルをスキップしますか?
ASP.Nets BundleTableを使用していくつかのjavascriptファイルを最適化しようとしていますが、コードが縮小されたときに特定のアドオン(jQuery-Timepicker)が機能しないという問題が発生しました。ここを参照してください。
バンドルコードは現在、次のようになっています。
ファイルを削除してjquery-ui-timepicker-addon.js
から、Webページに個別に含めると、正しく機能します。(それ以外の場合はUncaught TypeError: undefined is not a function
エラーが発生します)。
この1つのファイルの縮小をスキップするようにバンドルコードを設定できるかどうか疑問に思っています(ただし、バンドルにはまだ含まれています)?私は周りを見回してきましたが、そうするための解決策を思いつきませんでした。
asp.net-mvc - ASP.NET Web 最適化 - バンドルなしの縮小
バンドルせずに縮小にASP.NET Web 最適化を使用することは可能ですか?
ページ Example.cshtml と、そのページExample.jsに対応する javaScript ファイルがあるとします。デバッグモードでないときに縮小ファイルを生成するようなことができるようにしたいと思います。もちろん、これを行うために多くの単一の JavaScript ファイル バンドルを維持することもできますが、それは不必要な雑用のようです。@Scripts.Render("~/Scripts/Views/Example.js")
もちろん、JavaScript 圧縮には他のソリューションもありますが、ランタイム圧縮による単一のアプローチが最善の方法だと思います。
asp.net-mvc - 本番環境ではJavaScriptエラーが発生しますが、開発/テストではエラーが発生しません(バンドルはLinuxスタイルの行末を処理しません)
次のJavaScriptライブラリを使用してMVC4で実行されているWebサイトがあります。jQuery、jQueryValidate、Bootstrap、FineUploader、MaskedInput、Knockout、Modernizr。アプリ固有のJavaScriptもそこにあります。これらはすべて、System.Web.Optimization
名前空間のスクリプトバンドル機能を使用してロードされます。私のバンドルはこのように見えます。
しかし、何らかの理由で、サイトが私の開発システムで正常に動作している間、およびテスト時に、JavaScriptエラーで本番環境で失敗します。エラーは私には意味がありません...
今、私がjavascriptファイルをチェックすると、もちろんすべてが縮小されて圧縮されているので、そこから何かを解読することはできません。他の誰かがバンドリングからこのような奇妙な行動に遭遇しましたか?
asp.net-mvc - system.web.optimizationでキャッシュバスティングをカスタマイズする
最適化がオンになっているときにバンドルからスタイルをレンダリングすると、次のようになります。
残念ながら、Androidブラウザはクエリ文字列を含むURLをロードしていないようです。System.Web.Optimizationでこの文字列をカスタマイズする方法はありますか?
編集:
私の質問に答えて、ユーザーエージェント文字列でandroidを検出し、スタイルシートへのリンクのないクエリ文字列に置き換えようとしました。どうやら私が抱えていた問題はクエリ文字列のせいではなく、Androidストックブラウザにスタイルシートを完全にロードしない原因となったのはウェブフォントcssの縮小版でした。
Androidストックブラウザは、エスケープされたバックスラッシュを使用してcssコンテンツ文字列を読み込めません。これは、同じcssコンテンツ文字列を誤って最小化するASP.NETミニファイアの回避策でした。結局、アイコンフォントのcssスタイルを独自の「手作業で縮小」したスタイルシートに配置することになりました。
asp.net - Asp.NetMVC4バンドルでのJavaScriptエラー
MVC 4で以下のバンドルを使用すると、アプリで「jQueryundefined」などのJavaScriptエラーが発生します。
しかし、以下のアプローチを使用すると、私のアプリはJavaScriptエラーなしで動作します。
私の質問:問題は何ですか?
asp.net - System.Web.Optimization を使用するときに type="text/javascript" をスクリプト タグに追加するにはどうすればよいですか
私は次のものを持っています
生成するもの
でレンダリングすると
type="text/javascript" がないため、これは有効な HTML ではありません。BundleCollection が script タグでこの要素を出力するようにするにはどうすればよいですか?
asp.net - C# Web.Optimization バンドルと HTML5 キャッシュ マニフェスト
ASP.NET 最適化パッケージを使用して、スクリプトと CSS ファイルを縮小してバンドルしています。HTML5 キャッシュ マニフェストを使用する ASP.NET アプリケーション用のモバイル UI も開発しています。
最適化パッケージは、ファイルが変更され、アプリケーション キャッシュがリサイクルされると、動的バンドル URL のバージョンを更新します。
これが発生するたびにマニフェスト バージョンを更新し、最適化パッケージが提供する動的 URL をマニフェストに含めることができるようにしたいと考えています。
マニフェストの更新をトリガーするために、現在のバージョン (「v」パラメーター) またはその他のものを読み取るにはどうすればよいですか?
コード例: