2017-06-26 7 views
0

jQueryやTwitter Bootstrapのようなライブラリを作者で使い始めました。今度は、/vendor/components/jquery/jquery.min.js/src/Template/Layout/default.ctpにロードします。CakePHP 3.4レイアウトにjQueryをロード

私はそれをどのように行うことができますか?通常のURIを使用して動作しません ので:

<script type="text/javascript" src="/vendor/components/jquery/jquery.min.js"></script> 

ケーキは、ファイルとしてファイルを解釈することはありません。コントローラを探します:

Error: VendorController could not be found. 

JSファイルを正しくロードするにはどうしたらいいですか?

答えて

1

この質問はおそらく少し幅広いですが、あなたはおそらくからあなたの資産を構築するためにGulpまたはWebpackのようなものを使用してに見てみたいですComposerはあなたのアプリのWebルートにファイルします。これにより、JS/CSSのすべてのアセットを連結して最小化し、パフォーマンスを向上させることもできます。個人的には、jQueryのようなライブラリを配布するのにCDNを使用するのが普通ですが、これはウェブ上で一般的に使用されているので、クロスサイトキャッシングの恩恵を受けることができます。

エラー:「VendorController」が見つかりませんでした。なぜならCakeは 'webroot'の中の 'vendor'ディレクトリを見つけることができないからです。代わりに、魔法のルート(routes.phpファイル$routes->fallbacks('DashedRoute');のこのビット)を扱う方法のためにコントローラを探しています。

GulpやWebpackのようなツールを使用したくない場合は、Webrootフォルダの関連ファイルをシンボリックリンクできますが、個人的には私の最初の提案を使用します。シンボリックリンクを行う場合は、そこにすべてのコードを公開したくないので、ベンダディレクトリ全体をシンボリックリンクしないようにしてください。

+1

ありがとうございました。私は 'Gulp'や' Webpack'と一緒に働いたことはありません。これらの新しいライブラリをすべて圧倒しています。 'Composer'、' Node'など。ベンダーフォルダへのシンボリックリンクで修正しました。しかし、私は 'Gulp'を見るでしょう。 –

+0

@MattBackslashこれはGulpを見に来たときに役立つかもしれません:http://andy-carter.com/blog/a-beginners-guide-to-the-task-runner-gulp。 – drmonkeyninja

1

js/webroot/jsフォルダに置く必要があります。あなたは使用してインラインでそれを使用することができます:

echo $this->Html->script('jquery.min'); 

これは希望負荷:<script src="/js/jquery.min.js"></script>

+0

はい、通常私はこのようにしました。この新しいプロジェクトでは、jQueryをコンポーザーで使用したいので、jQライブラリをコンポーザーで更新し、すべてのファイルを自分でオンラインで検索することはできません。 '/ webroot/js/jquery.min.js'から'/vendor/components/jquery/jquery.min.js'へのシンボリックリンクで現在修正しました –

関連する問題