問題タブ [cassette]
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 - Cassette で開始する場合の「オブジェクト参照がオブジェクトに設定されていません」
NuGet 経由でCassetteを使い始めようとしています。アプリで問題が発生したため、ロールバックして、新しい空の ASP.NET MVC 3 Web アプリケーションで試しました。
ただし、問題は解決しません。ドキュメントページの「使いやすい」に続いて、私はそれを動作させることができません。例外とスタックの一部を次に示します。
ドキュメントの 2 つの手順に従っただけで、これが得られます。私は何を間違っていますか?
これは私の_Layout.cshtml
ファイルがどのように見えるかです:
c# - フォルダからファイルを削除するときにCassette.AssetReferenceExceptionが発生します
以前は.jsファイルをに持っていました/Public/javascripts/jquery1.1js
。
すべてが完全に機能していましたが、プロジェクトからこのファイルを削除する必要があったため、VisualStudioのソリューションから削除しました。
アプリケーションにアクセスすると、次のようになります。
「〜/ Public / javascripts / jquery.unobtrusive-ajax.js」の1行目の参照エラー。「〜/ Public / javascripts/jquery-1.5.1.js」が見つかりません。「〜/ Public / javascripts / jquery.validate.unobtrusive.js」の1行目の参照エラー。「〜/ Public / javascripts/jquery-1.5.1.js」が見つかりません。
説明:現在のWebリクエストの実行中に未処理の例外が発生しました。エラーとそれがコードのどこで発生したかについての詳細は、スタックトレースを確認してください。
例外の詳細:Cassette.AssetReferenceException:「〜/ Public / javascripts / jquery.unobtrusive-ajax.js」の1行目の参照エラー。「〜/ Public / javascripts/jquery-1.5.1.js」が見つかりません。「〜/ Public / javascripts / jquery.validate.unobtrusive.js」の1行目の参照エラー。「〜/ Public / javascripts/jquery-1.5.1.js」が見つかりません。
スタックトレースは次のとおりです。
確かに、なぜこれが起こっているのかはわかっています。Cassetteはまだ削除されたファイルを見つけようとしていますが、Cassetteに伝える方法がわかりません: " Hey, this file is no longer relevant. Scan the folder again and rebuild a list of files you need to work with.
"
しかし、私はこれを達成する方法がわかりません。
ドキュメントにはこれについての言及はなく、私のためにこれを自動的に行う必要があることを示唆しているだけです。
これが私の構成クラスです:
そして私の_Layout.cshtmlファイルでは:
css - Cassette が background-image ルールを書き換えないことがある
コンテキスト: http://getcassette.net/documentation/stylesheets
具体的には:
CSS の画像 URL が書き換えられます。たとえば、ファイル ~/styles/main.css の内容は次のとおりです。
次のように変換されます。
たとえば、私の特定のケースでは、.less ファイルに次のようなルールがあるとします。
Cassette はそれを書き換えることになっており、ブラウザは実際に次のルールを受け取ります。
そして、画像は正常に表示されます。
この特定のケースでは、同じ考え方を使用して、バックグラウンド ルールはカセットによって書き換えられず、ユーザーは手動で .less ファイルに入力した通常のルールを受け取ります。
事実は次のとおりです。
- 有効なルールと無効なルールは両方とも同じ .less ファイルにあります。
- 画像は私の Visual Studio プロジェクトのフォルダーに正しくあります
/Public/images
。 - Google Chrome Web ツールを使用すると、ルールが「
background: url("/Public/image/blue-rib.png") no-repeat;
カセットによって書き換えられていない」であることがわかります。
これの原因は何ですか?
web.config で debug=false に変更して、アプリを実行しようとしましたが、何も機能しません。
debug=true に戻そうとしましたが、まだダイスはありません。
助言がありますか?
jquery - jqueryセレクターは、Cassetteを使用するスクリプトタグ内の要素では機能しません
を使用してデータオンロードにアクセスしようとすると、次の$("#index").data("onload")
ようになります'undefined'
。
周囲のスクリプトタグがなくても、すべてが正常に機能します。これは、スクリプトタグ内にラップするCassetteを使用してロードされます。
私は何が間違っているのですか?
asp.net-mvc-3 - カセットスローセキュリティ例外
中程度の信頼性のセキュリティレベルのWindows2008サーバーでCassetteを使用してMVC3Webアプリケーションを公開しました(ホスティング会社はセキュリティレベルの変更を許可していません)。
このリンクによると、Cassetteは中程度の信頼レベルで実行されますが、アプリケーションを実行すると、次の例外がスローされます。
セキュリティ例外:アプリケーションがセキュリティポリシーで許可されていない操作を実行しようとしました。このアプリケーションに必要な権限を付与するには、システム管理者に連絡するか、構成ファイルでアプリケーションの信頼レベルを変更してください。
[SecurityException:リクエストが失敗しました。]
カセット.CassetteApplicationContainer`1.CreateNewApplicationWhenFileSystemChanges(String rootDirectoryToWatch)+0
カセット.CassetteApplicationContainerFactoryBase`1.CreateContainerFromConfiguration()+232
カセット.Web.CassetteApplicationContainerFactory.CreateContainer()+21
カセット.Web.StartUp.InitializeApplicationContainer()+22
カセット.Web.StartUp.PostApplicationStart()+436
誰かがこれを解決する方法を知っていますか、または私が間違っていることは何ですか?
ありがとう
.net - .Netカセットパスは本番環境で404を返します
現在のバンドルリファレンスがローカルで機能しています:
開発サイトでは、これは(どういうわけか)次の方法で解決されます。
問題は、これが本番環境で404を返すことですが、理由はわかりません。これはハンドラーの構成の問題である可能性がありますが、構成(web.config)にセットアップしていないため、問題を引き起こすために内部で何かが発生している必要があります。
どちらのアプリケーションも.net4+を実行しているようですが、誰か助けてもらえますか?
javascript - カセット アセット マネージャーが JavaScript バンドルに対して空のコンテンツを返す
v1.1.0 から v1.2.0 にアップグレードしてから、ここ数週間でカセットに 3 回問題が発生しました。v1.1.0 にロールバックしましたが、それ以降問題は発生していません。
Cassette によって管理される複数の JavaScript バンドルを持つ IIS7 で実行されている .NET 4.0 を使用する c# の Web サイトがあります。カセットの構成は次のとおりです。
数日間正常に動作した後、突然 JavaScript ファイル バンドルの 1 つが空の JavaScript ファイルを返し始め、Web サイトが壊れます。いくつかの異なるバンドルに対してそれが発生するのを見てきました。そのため、失敗するのは特定の 1 つのバンドルではありません。
スタートアップ トレースをカセットに入れましたが、css にいくつかの画像が欠けていることを除けば、何も表示されませんでした。
Web サイトの各ページには、参照する js バンドルが少なくとも 2 つあります。1 つのバンドルはページ固有のものであり、次に jquery などのためのいくつかの一般的なバンドルがあります。
バンドルを再構築すると、一度は修正されたように見えましたが、IIS でアプリケーション プールを再起動するまで修正されたことに気付かなかった場合もあります。
誰がこれを引き起こす可能性があるか考えていますか?
ありがとう。
asp.net - 複数のクライアント要求中の Cassette のパフォーマンスはどの程度ですか?
何百人ものユーザーが同時にアクセスする可能性のある asp.net Web アプリケーションで Cassette を使用することを検討しています。Cassette は、次のように始まるリクエストを処理する HTTP ハンドラーを介して動作します。
ハード ドライブにバンドルが作成されていないことに気付きました。リソースは実行時にメモリ内でコンパイルおよび圧縮され、ユーザーに返されるようです。
Cassette は、ブラウザのキャッシュではなく、プロキシまたは IIS のキャッシュに依存して、他のユーザーから同じバンドルへの後続のすべての要求を処理するということですか? Cache-Control: public
すべてのバンドル応答に追加されるのは、URL のバンドルが常にIIS/プロキシによってキャッシュされ、Web アプリケーションが二重の仕事をしないことを意味しますか?
asp.net-mvc-3 - パス「~/Public/stylesheets/main.less」を含むアセット バンドルが見つかりません
Cassette のデバッグ ページにアクセスして何が何であるかを確認しようとしましたが、空白のページしか表示されません ( Firebug は、404 ヘッダーを受信していると言っています)。理由はよくわかりません:
アセットのバンドルと縮小のために Cassette で ASP.Net MVC3 を使用しています。
開発マシンではすべて正常に動作していますが、ホスティング サーバーにデプロイすると、次のようなメッセージが表示されます。
「/」アプリケーションでサーバー エラーが発生しました。
パス「~/Public/stylesheets/main.less」を含むアセット バンドルが見つかりません。
説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。
例外の詳細: System.ArgumentException: パス "~/Public/stylesheets/main.less" を含むアセット バンドルが見つかりません。
繰り返しますが、私の開発マシンではすべてが正しく動作します。
ここに私の CassetteConfiguration ファイルがあります:
そして私の_Layout.cshtmlファイルで:
Vidahost の共有「クラウド」ホスティングを使用しています。
この問題をデバッグするには、どのような手順を実行できますか? 私は午後中ずっとそれに取り組んできましたが、今のところ新境地を開拓していません。
ありがとうございました!
asp.net-mvc-3 - Cassette.web、MVC 3、共有レイアウト: 正しい順序で参照を取得しますか?
Cassette.net、MVC 3、Razor、C#、相対位置、および共有レイアウトを使用して、元の JavaScript ファイルを変更せずに正しい順序で参照を取得するにはどうすればよいでしょうか?
共有レイアウトでは、次のように jQuery を参照します。
次に、ビューに別の参照を追加します。
myScript は jQuery に依存していますが、Cassette は jQuery の前で myScript を参照しています。
子ページで参照されているスクリプトが親ページのスクリプトの前にレンダリングされるのは奇妙だと思います。
たとえば、スクリプトに表記を追加できるようですが/// <reference path="other.js" />
、これを含めるために JavaScript コードを変更したくありません。
アップデート:
追加した
少なくとも、適切なタグを使用@Bundles.RenderScripts("head");
して jQuery スクリプトの後にスクリプトを配置します。@Bundles.RenderScripts("body");
スクリプトを追加された順序で保持しているようです。ある種の Bundle.config を使用してこれらのスクリプトをカスタム オーダーする方法、または共有レイアウトを使用して子ページの前に親ページにスクリプトをオーダーさせる方法を知りたいです。