Yiiの中の資産と連携する適切な方法は何ですか?
-
16-09-2019 - |
質問
私はYiiの資産ディレクトリ内のディレクトリ(8523d23または10s89b92のような名前)の奇妙なセットを作成することがわかり、これはさらに、実行時に起こります。例えば、私のテーブルの一つは、改ページがキッカー-で、10件の以上のレコードを持って、私はpager.cssという名前の資産のサブディレクトリに新しいファイルを持っています。
私は、生産へのテストから、私のサイトを移動すると、私はそれらすべてをコピーするか、単に空の「資産」ディレクトリを作成し、それが実行時に入力されますでしょうか?
私は、例えば、いくつかの新しいjQueryプラグインを追加したい場合は、、どのように私が進むべき?
たとえば、私は、資産にコピーするか、またはyii/framework/web/js/source
し、jquery.charcounter.jsを追加したいですか?私は後者を行う場合、どのように私は、これはHTMLページの出力に含まれるファイルを.jsファイル得るのですか?
解決
assets
は、書き込み可能なディレクトリでなければなりません。 Yiiは、資産の世話をします。
いくつかのスタイルシート、イメージ、スクリプト、またはディレクトリ全体をウェブ可視フォルダに入れることができYii::app()->assetManager->publish()
を呼び出します。
pager.css
および他の非おなじみのファイルがウィジェット(例えばCLinkPager
)および他の構成要素によって生成される(あなたが必要なとき、そのようなCClientScript
ようにjQueryを公開)。
の展開時には、このフォルダは空である必要がありますが、それは本当に問題ではありません。
の追加プラグインは、フレームワークフォルダを介して行われるべきではありません。あなたはどちらかcomponents
ディレクトリにそれらを配置し、必要に応じて、または(images
またはcss
などのような)他の都合の目に見えるのディレクトリに、実行時にそれを公開することができます。
更新
、jquery.charcounter.js
を埋め込むcomponents
ディレクトリにそれを置くために、その後、呼び出し
Yii::app()->clientScript->registerScriptFile(
Yii::app()->assetManager->publish(
Yii::getPathOfAlias('application.components').'/jquery.charcounter.js'
),
CClientScript::POS_END
);
奇妙なフォルダ名については、私はしっかりと彼らは独自のハッシュ(またはその一部)であると考えて、そのアプリケーションは、いくつかの拡張機能を使用している場合、それらは区別することができます。
他のヒント
これは資産フォルダの詳細な説明を提供し、これは、クエリを解決します。
http://www.yiiframework.com/wiki/148/understanding-assets / の