0

すべての js ファイルを共通の clientlib カテゴリにまとめました。例えば

 ->etc
   ->designs
    ->myapp
     -> clientlibs
      -> base
        -> js
          -> app1.js
          -> app2.js
          -> app3.js

そのため、/etc/designs/myapp/clientlibs/base.js にアクセスすると、含まれているすべての js のコンテンツを含む 1 つの大きなマージされた js が返されます。このbase.jsから特定のjs(app2.jsなど)にアクセスする方法はありますか? /etc/designs/myapp/clientlibs/base/js/app2.js のような相対パスを使用でき、それが機能します。

しかし、この js を返すためのより良い方法 (おそらく /clientlibs/base.app2.js のようなセレクターを使用) はありますか? それとも、これは特定の js にアクセスする唯一の方法ですか?

4

1 に答える 1

2

あなたが行ったように相対パスを使用することは、特定の .js ファイルにアクセスする方法です。クライアント ライブラリは、セレクター経由でアクセスするようには設計されていません。スクリプトを 1 つの HTTP リクエストに結合することでパフォーマンスが向上するため、常にクライアント ライブラリを介して JavaScript をロードすることが理想的です (1 つだけよりも多くの HTTP リクエストをロードするのに時間がかかります)。また、スクリプトを圧縮して小さくします。そのため、app1.js などのファイルに完全な空白とコメントと書式設定を含むスクリプトをソースすることができますが、エンド ユーザーがダウンロードするスクリプトで不要な空白とコメントを削除するベース クライアント ライブラリを介してそれらをロードします。 .

クライアント ライブラリの一部のみが必要な場合は、必要な部分のみを含む 2 番目のクライアント ライブラリを定義できます。複数の異なるクライアント ライブラリに同じソース ファイル (app1.js など) を含めることができます。あなたのユースケースでは、これが最良のアプローチのように思えます。

デバッグのために、いつでも?debugClientLibs=trueクエリ文字列を追加して、ブラウザで一時的に個々のファイルを再度表示できます。

于 2016-08-30T18:36:39.910 に答える