問題タブ [asp.net-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-4 - GZIPとヘッダーをバンドルするMVC4
Google PageSpeedとYSlowを使用してサイトをテストしていますが、MVC4バンドルを使用して作成したバンドルが取得されません。
Gzip圧縮(gzipまたはdeflateを使用してリソースを圧縮すると、ネットワーク経由で送信されるバイト数を減らすことができます)、
Vary:Accept-Encodingヘッダー(1つは圧縮、もう1つは非圧縮の2つのバージョンのリソースをキャッシュするようにプロキシサーバーに指示します。これにより、Content-Encodingヘッダーの存在を適切に検出しないパブリックプロキシの問題を回避できます。)
また、ISSのスクリプトフォルダ全体にエンコーディングヘッダーを追加するにはどうすればよいですか。HTTP応答ヘッダーがあることを知っているので、カスタムHTTP応答ヘッダーを追加します。
ただし、これはスクリプトフォルダーとサブフォルダー全体、および[名前]フィールドと[値]フィールドに何を入力するかで機能します。
どうすればこれを解決できますか。
よろしく。
asp.net - ASP.NET バンドル - 含まれているファイルが変更された後、バンドルが更新されない (304 not modified を返す)
ASP.NET MVC 4 アプリケーションで ASP.NET バンドルを試しています。状況は、このタイプのアドレスを使用して他のサイトからアドレス指定できる JS および CSS ファイルを含む CDN スタイルのサービスを作成したいということです: http://www.mycdn.com/scripts/plugin/js、バンドル含まれているすべての .js ファイルを縮小します。
1 つのファイルのバンドル構成は次のようになります。
ただし、これを行うと、元の js ファイルを変更した後でもバンドルが更新されません。ブラウザを更新すると、304 Not Modified が表示され続け、縮小されたファイルの内容が更新されません。古いコンテンツのバンドルは役に立たないので、どうすればバンドルを更新できますか? あらゆる方法を試しましたが、解決策がわかりませんでした。
前もって感謝します!
asp.net-mvc-4 - @Scripts.Render("~/bundles/jquery") を使用する理由
どうやって
このようにhtmlからスクリプトを参照するだけとは異なります
パフォーマンスの向上はありますか?
asp.net-mvc - ASP.NET MVC 4、.net 4.5 のカスタム ディレクトリから JavaScript と CSS を含める方法は?
このフォルダー構造を考慮すると、次のようになります。
style1.css
アプリケーションには、 、style2.css
、style3.css
およびを含めたいと考えていますstyle4.css
。
私はこれをやっています:
そして、_Layout.cshtml
私はそれを次のようにレンダリングします:
style1.css と style2.css のみが読み込まれます。正しくロードする方法style3.css
とstyle4.css
?
LE: コンテンツはソリューションのフォルダーであり、そのフォルダー内のすべてのファイルがソリューションに追加されます。
asp.net-mvc - 自動バンドリング/ミニファイはMVC4の最終リリースで投げられましたか?
以前にScottGuthrieが読んだ記事と、 Mads Kristensenが投稿したビデオによると、これを置き換えることで、ASP.netMVC4で自動バンドル/縮小できるはずです。
これとともに:
.Net 4.0と4.5の両方をターゲットにしてみましたが、違いはないようです。404エラーが発生し、リンクタグとスクリプトタグがバンドルされたリソースに送信されることはありません。
この機能は最終バージョンから削除されましたか?
この機能を「テーマ」に活用したい。
これが私が実装することになった方法です。うまくいけば、それは理にかなっています...
c# - MVC4 - 最適化が true に設定されている場合、バンドルが機能しない
ここで何が正しくないのだろうか。ASP.NET C# MVC4 を使用しており、新しい css/js 最適化機能を利用したいと考えています。
ここに私のHTML部分があります
これが私のBunduleConfig.cs
部分です
出力 (作品):
ただし、HTML出力のコメントを外すと、BundleTable.EnableOptimizations = true;
次のようになります
そして、これはもちろん 404 です。どこで何か間違ったことをしたのかわかりません。助けてください。初めて MVC4 を使用します。
asp.net-mvc - ASP MVC4 自分のバンドルではなくデフォルトのバンドルを使用していますか?
Application_Start() に次のコードがあります。
と:
デバッグを使用して Application_Start の最初の行で中断し、BundleTable.Bundles をチェックすると、BundleCollection に既にエントリがあることがわかります。
これらのエントリは私のエントリではなく、アプリケーション内のファイルとは関係がないようです。むしろ、それらはデフォルトのように見えます。たとえば、私のアプリケーションには 1 つの jQuery ファイルしかないのに対し、BundleCollection には 7 つの jQuery 関連の js ファイルがあります。
これらのファイルが BundleCollection にある方法/理由と、それらがどのように設定されているかを知っている人はいますか?
例: moo、dojo、prototype、ext などと呼ばれるバンドルを見つける方法と理由。これらは私が作成したバンドルではありません。私はここで完全に混乱しています。これらのバンドルが作成される原因となるものは見つかりません。
asp.net - VS2012-Webフォーム-バンドルの混乱
Visual Studio2012を使用して新しいASP.NETWebフォームプロジェクトを作成しました。残念ながら、既定のSite.Masterファイルは非常にわかりにくいものです。(これらの質問は非常に関連があり、同じコードをかなり参照しているため、一緒に投稿しています。)
まず、バンドルとミニファイの目的をすでに理解しているので、それについて説明する必要はありません。ただし、スクリプトがデフォルトのマスターページに含まれている方法がどうなっているのかわかりません。
質問1:
BundleConfig.csファイルに「〜/ bundles / WebFormsJs」というバンドルが作成されているのに、マスターページでこれらの同じ個々の.jsファイルがScriptManagerに1つずつリストされているのはなぜですか。
BundleConfig.csの内部:
Site.Masterの内部:
ご覧のとおり、これらの同じ.jsファイルのそれぞれがScriptManagerに個別にリストされています。BundleConfig.csの外部で作成された「WebFormsJs」バンドルへの参照すら表示されません。これらのJavaScriptファイルのそれぞれがここScriptManagerで個別に参照される場合、なぜそのバンドルが作成されたのですか?
質問2:
なぜScriptManagerがこのように使用されているのですか?UpdatePanelsの使用など、MicrosoftのバージョンのAjaxにはScriptManagerが必要であるという印象を受けました。ここでScriptManagerを使用する目的は何ですか...JavaScriptファイルを登録するだけですか?
質問3:
ScriptManagerを介してjavascriptファイルを登録する場合と、代わりに次のアプローチを使用するSite.Masterの上部に登録する場合の違いは何ですか?
質問4:
ScriptManagerの内部でも、次のことに気づきました。
...少なくともBundleConfig.csから「MsAjaxBundle」を認識できますが、jqueryとjquery.ui.combinedはどこで定義されていますか?検索を行ったところ、packages.configでそれらへの参照が見つかりました。
しかし、ここでも何が起こっているのかわかりません。NuGetにはpackages.configが使用されていると思いました。さらに...これらのjQuery.jsファイルの場所のパスがここにリストされていません。それらはここにリストされており、奇妙なことに.NET Frameworkの特定のバージョン(私の場合は4.5)に関連付けられています。javascriptリソースが.NETFrameworkのバージョンに関連付けられる理由は私にはわかりません。
とにかく、質問4はこれです:ScriptManagerのリソース「jquery」はどのように追加/使用されていますか?jQuery .jsファイルが他のすべてのバンドルと同じようにBundleConfig.csにバンドルされていないのはなぜですか?
質問5:
UpdatePanelやそのような種類のMicrosoft Ajaxコントロールを使用する予定がない場合、Site.Masterから次のスクリプト参照を削除できますか?これがデフォルトでここに含まれている理由について、私は少し混乱しています。
asp.net-mvc-4 - RTM を使用した MVC4 バンドルのデバッグ
それで、rtm ビットを使用して新しい mvc4 アプリケーションの開発を終了しました。
製品サーバーにデプロイしましたが、スタイリング以外はすべて正常に動作しています。バンドルに問題があります。順序の問題か、バンドルでレンダリングされていないファイルがあると思います。
バンドルで何が起こっているのかをデバッグして、何が問題なのかを知るにはどうすればよいですか? web.config 内で debug=false に切り替えると、開発環境に戻り、本番環境で発生している問題を再現できるため、その環境に問題はありません。
ありがとうございました!!
アップデート。BundleTable.EnableOptimizations = false; で enableoptimizations をオフにすると、prodのサイトは問題なく動作しますが、もちろん縮小はありません。
c# - BundleCollection に MVC4 でキャッシュされたスクリプト バンドルを強制的にフラッシュさせる方法
... または、心配するのをやめて、Microsoft の完全に文書化されていない API に対してコードを書くことを学んだ方法. 公式System.Web.Optimization
リリースの実際のドキュメントはありますか? XMLドキュメントはなく、すべてのブログ投稿は実質的に異なるRC APIを参照しています。どーも..
JavaScript の依存関係を自動的に解決するコードを書いており、それらの依存関係からオンザフライでバンドルを作成しています。スクリプトを編集したり、アプリケーションを再起動せずにバンドルに影響を与えるような変更を加えたりした場合を除いて、すべてがうまく機能します。変更は反映されません。そこで、開発で使用する依存関係のキャッシュを無効にするオプションを追加しました。
ただし、バンドル コレクションが変更された場合でも、明らかBundleTables
に URL をキャッシュします。たとえば、自分のコードでバンドルを再作成する場合は、次のようにします。
同じエイリアスを持つバンドルを削除して再作成するたびに、まったく何も起こりません。bundleUrl
返される fromResolveBundleUrl
は、バンドルを削除して再作成する前と同じです。「同じ」とは、バンドルの新しいコンテンツを反映するために、コンテンツ ハッシュが変更されていないことを意味します。
編集...実際には、それよりもはるかに悪いです。バンドル自体は、何らかの方法でBundles
コレクションの外にキャッシュされます。ブラウザがスクリプトをキャッシュしないように独自のランダム ハッシュを生成しただけでは、ASP.NET は古いスクリプトを返します。したがって、明らかに、からバンドルを削除しBundleTable.Bundles
ても実際には何も起こりません。
この問題を回避するためにエイリアスを変更するだけで済みます。これは開発には問題ありませんが、ページの読み込みごとにエイリアスを非推奨にするか、BundleCollection のサイズが大きくなる必要があるため、この考えは好きではありません。すべてのページの読み込み。これを本番環境でそのままにしておくと、大変なことになります。
BundleTables.Bundles
そのため、スクリプトが提供されると、実際のオブジェクトとは無関係にキャッシュされるようです。そのため、URL を再利用する場合、再利用する前にそれが参照していたバンドルを削除したとしても、キャッシュ内にあるもので応答し、Bundles
オブジェクトを変更してもキャッシュはフラッシュされません。つまり、新しいアイテム (またはむしろ、別の名前の新しいアイテム) が使用されることになります。
動作は奇妙に思えます...コレクションから何かを削除すると、キャッシュから削除されます。しかし、そうではありません。このキャッシュをフラッシュしてBundleCollection
、そのバンドルが最初にアクセスされたときにキャッシュされたものの代わりに現在のコンテンツを使用する方法が必要です。
どうすればこれを行うことができますか?
ResetAll
目的が不明なこのメソッドがありますが、とにかく物事を壊すだけなので、そうではありません。