1

私はSPAに取り組んでおり、コードファイルの1つをrequireJSオプティマイザーで最適化し、次のように新しいパスを設定しました:

config.paths['billingmanager/billing/billing'] = 'billingmanager/billing/billing-build';

残念ながら、現在(概念的に)これを行うコード

require(['text!billingmanager/billing/billing.htm'], callback);

現在、見つけようとしてbillingmanager/billing/billing-build.htm失敗しています。

テキストを教えてもらえますか! 通常のrequireパスがどのようにbillingmanager/billing/billing設定されていても、ファイルをフェッチしてほしい—billingmanager/billing/billing.htmピリオド.

このようなことをするための回避策があります

config.paths['billingmanager/billing-htm'] = 'billingmanager/billing/billing.htm';

そして手動で使用することを知っていますrequire(['text!billingmanager/billing-htm']);が、ここで簡単な修正があることを本当に望んでいます.

4

1 に答える 1

3

この特定の問題に遭遇したことはありませんが、それを回避するために最初に行うことは、指定したパスを相対パスに置き換えることtext!です。これにより、にあるパスとの衝突を回避できますpaths。たとえば、次のようになります。

require(['text!../parent/billingmanager/billing/billing.htm'], callback);

もちろん、使用する必要がある実際の相対パスは、アプリケーションのアーキテクチャによって異なります。./を使用するだけでは RequireJS の巧妙さを回避するには不十分であることが判明したため、上の図では、現在のディレクトリからバックアウトしてから戻っています。現在のディレクトリは name であると想定していparentます。

に指定されたパスのパス解決の規則は、通常のパス解決規則とtext!異なることに注意してください。通常、指定されたパスに拡張子を追加するrequireと、設定が完全​​にバイパスされpathsます。したがって、相対的なrequire(['billingmanager/billing/billing/foo.js']...名前のファイルを探し、質問で示した設定を使用しません。これは、 に指定されたパスには当てはまりませんこれらのパスは、拡張子があっても設定を通過します。(これはここに文書化されています。)billingmanager/billing/billing/foo.jsbaseUrlpathstext!paths

于 2014-04-02T17:15:03.373 に答える