Yii - Externe JS-Dateien Inlclude , registerScriptFile und veröffentlichen
Bin ich mit dem YII-framework für meine web-Anwendung . Ich habe eine Frage zur Registrierung von externen Java script-Datei.
Könnte jemand mir bitte helfen ?
- Was ist der beste Ort, um kopieren Sie die Java-script-Datei ( in welchem Ordner )
-
Ich sehe, gibt es zwei Möglichkeiten zu registrieren, die eine externe Java-script
DateiErsten Ansatz
$baseUrl = Yii::app()->baseUrl; $cs = Yii::app()->getClientScript(); $cs->registerScriptFile($baseUrl.'/js/yourscript.js');
Zweiten Ansatz weiter
$cs=Yii::app()->getClientScript(); $cs->registerScriptFile(Yii::app()->getAssetManager()->publish('path/to/js')); $cs->registerScript('id', 'your js here');
Im ersten Ansatz bin ich direkt mit der Registrierung registerScriptFile und vorbei an der java-script-Datei
In der zweite Ansatz, den ich bin der Registrierung und der Veröffentlichung der Schrift . Das bedeutet, dass er Kopien an die Ordner assets. ( Bitte korrigiert mich Wenn ich falsch bin )
und was heißt dann noch den letzten Schritt tut, Was id
wieder java script file
. ($cs->registerScript('id', 'your js here');
)
In meinem Fall bin ich der Zugriff aus einer der sichten , so dass in dem zweiten Ansatz, da es veröffentlicht wird, zu dem asset-Ordner , wenn 10 clients ruft die Datei hat es veröffentlicht 10 mal ( da ich Zugriff aus der view-Datei )
Bin ich etwas verwirrt .
Danke für deine Antwort
Hinsichtlich
Kiran
- mögliche Duplikate von Include CSS -, javascript-Datei in Yii-Framework
Du musst angemeldet sein, um einen Kommentar abzugeben.
Yii Assets-Ordner wird normalerweise verwendet, Widgets und Yii ' s internen Komponenten wie Gridview. Sie brauchen nicht zu speichern oder veröffentlichen Sie Ihre externe JS oder CSS-Dateien zu Ordner "assets".
Zweitens existieren die Dateien bereits im Ordner "assets"
getAssetManager()->publish('path/to/js')
nicht kopieren againg.und zuletzt Sie brauchen nicht zu instanziieren CClientScript Klasse, können Sie direkt aufrufen, wie
oder wenn Sie mit den Themen
Im Allgemeinen Fall der beste Weg ist, um Ihre JS-Dateien in web_root/js und verwenden
$cs->registerScriptFile
. AssetManager bequem zu verwenden in den widgets. Sie können Ihre JS-Dateien in geschützte Ordner, und veröffentlichen Sie Sie für den Ordner "assets", wenn es erforderlich ist. Wenn Sie rufenpublish()
Methode 10-mal, es sollte veröffentlichen Sie Ihre Dateien nur diejenigen. Wenn Sie$forceCopy
parametertrue
(Standard istfalse
), dann es sollte kopieren, 10 mal, aber in der gleichen dir.Diese Frage ist bereits beantwortet - https://stackoverflow.com/a/19210733/2670583
Sehen Sie mehr CClientScript für Yii