問題タブ [bundling-and-minification]
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 - App_Themes css ファイルを Microsoft.Web.Optimization にバンドルできますか?
Microsoft.Web.Optimization を使用して WebForms App_Themes をバンドルおよび縮小できるかどうかを知っている人はいますか?
javascript - mvc3 WebアプリのprodビルドでJSロギング呼び出しを削除するにはどうすればよいですか?
MVC3 WebアプリのJS全体でロギングメソッド(console.logをラップするだけ)への呼び出しがたくさんあります。テストビルドと本番ビルドをビルドするときに、JavaScriptからそれらを削除したいと思います。
現在、バンドルとミニファイのnugetパッケージを使用して、JSを1つの大きなミニファイファイルにバンドルしてミニファイしていますが、ロギングメソッドへの呼び出しも削除してもらいたいと思います。
ロギングメソッドを空の関数に置き換えるメカニズムがあり、本番環境では機能しませんが、それでも呼び出され、さまざまな引数が渡されます。さらに、「大きな」文字列があります。渡され、それらを削除して、ファイルサイズを減らすことができます。
私の頭の中で理想的な解決策は、JavaScriptを何らかの方法で解析し、それらのメソッドの呼び出しを検出/削除することです。できれば、正規表現だけでなく、ある種のJavaScriptエンジンで。
いずれにせよ、本番環境で提供される最終的なJavaScriptで、ロギングメソッドへの呼び出しを削除したいだけです。誰かが私がこの追加の縮小をどのように達成するか知っていますか?
asp.net-mvc - ローカライズされたスクリプトバンドルソリューション
こんにちは私は現在、System.Web.Optimizationでasp.net MVC4rcを使用しています。私のサイトはユーザーの好みに応じてローカライズする必要があるため、jquery.globalizeプラグインを使用しています。
ScriptBundleクラスをサブクラス化し、に応じてバンドルするファイルを決定したいと思いますSystem.Threading.Thread.CurrentThread.CurrentUICulture
。これは次のようになります。
たとえば、UIカルチャが「en-GB」の場合、次のファイルを取得します(もちろん、縮小し、可能であれば、スクリプトファイルまたはcurrentuiカルチャが変更されるまでキャッシュします)。
- "〜/ Scripts / jquery.globalize / globalize.js"
- "〜/ Scripts / jquery.globalize / globalize-en-GB.js" <-このファイルがサーバーファイルシステムに存在しない場合は、globalize-en.jsにフォールバックします。
Includeメソッドを次のようなものでオーバーロードしようとしましたが、リクエストではなくアプリケーションの起動時に評価されるため、これは機能しません。
ありがとう
コンスタンチノス
asp.net-mvc - MVC4 のバンドルと模倣はキャッシュを行いますか?
MVC4 のバンドル機能と模倣機能を利用したいのですが、模倣が心配です。バンドリング/模倣プロセスが機能するクライアントからのcssおよびjavascriptのリクエストがあるたびに、それは事実ですか? もしそうなら、毎回CPUオーバーヘッドはありませんか?
asp.net-mvc-4 - mvc4は強く型付けされたバンドルをバンドルします
そのため、MVC4ではスクリプトとスタイルのバンドルが導入されています。これはこれを可能にします:
次に、次のようなかみそりのビューで使用されます。
私の質問は、なぜ入力する必要があるのかということ"~/bundles/mobile"
です。強く型付けされたオブジェクトを取得するためのインテリジェンスを取得する方法はありますか?それ以外の場合は、同じものと呼んでいることを確認するために調べに行く必要があります。
私はこのようなことをしたいと思います:(これはこのようにコンパイルされないことを私は知っています、それは単なる例です)
またはそれに影響を与える何か。
編集:答えはとても簡単です。@Hao Kung
指摘するように@Styles.Render
、単にURL文字列パスを取ります。パスを保持するクラスを作成しました。
どのページでも、あなたは単にします
そこにあります。あなたの側で少し余分な努力がありますが、少なくとも今は強く型付けされています。
asp.net-mvc-4 - MVC4 @Styles.Render() がデバッグ モードで期待どおりに動作しないのはなぜですか
MVC4 でバンドルと縮小のサポートを実装し、Bootstrap .less ファイルを自動的にコンパイルできるように設定しています。BundleConfig.cs ファイルに次のコードがあります。
TwitterBootsrapLessTransform は次のとおりです (サブ .less ファイルを dotLess にインポートする必要があるため、必要以上に複雑です)。
私のベース _Layout.cshtml ページで、これを実行して css ファイルをレンダリングしようとしました
mvcチュートリアルで提案されているように、クライアントブラウザが最終的に要求するファイルは
これはエラーを引き起こします。次のリンクをベースレイアウトページごとに配置すると、期待どおりに機能します。
@Styles.Render() がデバッグ モードで同じように動作しないのはなぜですか? リリースモードで動作します。デバッグでバンドルと縮小を望まないことは理解できますが、このバンドルを常に同じように機能させるにはどうすればよいですか?
javascript - MVC4 部分ビュー JavaScript バンドルの問題
Visual Studio 11 を使用してプロジェクト ASP.net 4、MVC4(RC) に取り組んでいます。部分ビューをレンダリングする MVC4 Razor ビューをレンダリングしようとしています。部分ビューに必要な JavaScript がいくつかあります。私の部分的なビューでは、次のようにスクリプト セクション内に JavaScript を含めると、読み込まれないようです。
スクリプト セクションを削除すると、jquery ライブラリ (私の _Layout.cshtml ページにバンドルされてレンダリングされている) がまだロードされていないため、ドキュメントの準備が整ったコードが実行されたときに失敗します。
jquery ライブラリをロードするための _Layout ページ コード
誰かがこれに対する解決策を知っていますか、それとも単に間違った方法で進んでいますか? それは私の頭を破壊します!!
asp.net-mvc - バンドルと縮小は古いスタイルを送信しています
この記事に従って、バンドルと縮小をセットアップしましたhttp://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification。
cssを更新するまではうまく機能していると思っていましたが、古いスタイルを取得し続けました。キャッシュをクリアし、ブラウザを再起動し、IIS を再起動し、さらにコンピュータを再起動しましたが、何も機能しません。
バンドルと縮小をオフにすると
新しいスタイルが表示され、ページが適切に表示されます。バンドルと縮小をオンに戻すと、古いスタイルが再び得られます。また、css ファイルの 1 つを再構築または変更するたびに、新しいキャッシュ無効化トークンがあります。したがって、別のコンテンツを送信していると思われるかもしれませんが、それでも古いコンテンツを受信します。css ファイルの 1 つにテスト クラスを追加し、縮小された css ファイルをダウンロードしましたが、追加したテスト クラスがありません。
他の誰かがこの問題に遭遇しましたか?
asp.net-mvc-3 - GZipsystem.web.optimizationバンドル
私は新しいSystem.Web.Optimizationを使用しており、次のようなバンドルを作成しました。
私の見解では、これを追加しました
フィドラーでは、URLに1年後のexpiresヘッダーとtext/javascriptのコンテンツタイプが表示されます
web.configには、静的JSファイルで動作するgzipのコードがありますが、縮小されたバンドルでは動作していないようです。
レンダリングバンドルをコンテンツにgzipで圧縮する方法はありますか?
unit-testing - MVC4でBundleConfigを単体テストすることは可能ですか?
私の知る限り、答えはノーです。私が見ている問題は、クラスのInclude(params string[])
メソッドに起因しています。System.Web.Optimization.Bundle
内部的にこれはを呼び出しSystem.Web.Optimization.IncludeDirectory(string, string, bool)
、次にこのコードを使用します。
HttpContext.Current
単体テスト中に設定することは可能ですが.Server.MapPath(string directoryVirtualPath)
、null以外の文字列を返す方法がわかりません。null引数が渡されるとコンストラクターが例外をスローするためDirectoryInfo(string)
、このようなテストは常に失敗します。
これに対する.NETチームの推奨事項は何ですか?統合テストまたはユーザー受け入れテストの一部として、バンドル構成を単体テストする必要がありますか?