Heim > PHP-Framework > YII > Hauptteil

Wie referenziere ich Vermögenswerte in Yii?

coldplay.xixi
Freigeben: 2020-07-16 10:22:33
Original
2842 Leute haben es durchsucht

Yii-Methode zum Referenzieren von Assets: Platzieren Sie zuerst die benötigten Ressourcen unter [modules/admin/assets], veröffentlichen Sie dann die privaten Ressourcen im öffentlichen Verzeichnis und platzieren Sie sie dann unter [/assets] im Website-Verzeichnis einen zufälligen, nicht in Konflikt stehenden Ordner; kopieren Sie dann die Dateien.

Wie referenziere ich Vermögenswerte in Yii?

Yii-Referenzvermögensmethode:

Warum YII-Vermögenswerte verwenden

1. Die Rolle von Assets besteht darin, die Modularisierung und das Plug-In zu erleichtern. Aus Sicherheitsgründen ist der Zugriff auf Dateien unter URL-Schutz nicht zulässig. Wir möchten das Modul jedoch auch trennen, sodass wir die Veröffentlichung verwenden müssen. Das heißt, ein Verzeichnis. Kopieren Sie die Datei unten in Assets, um über die URL leicht darauf zugreifen zu können.

$assets = Yii::getPathOfAlias('ext').'/css'; 
//$baseUrl = Yii::app()->getAssetManager()->publish($assets); 
$baseUrl = Yii::app()->assetManager->publish($assets);  //extensions/css发布到assets的创建一个随机不冲突的文件夹下 
Yii::app()->clientScript->registerCssFile($baseUrl.'/main.css');//引用assets下面的main.css
Nach dem Login kopieren

2. Wenn ein Modul Ressourcen hinzufügen muss, fügen Sie diese einfach direkt aus dem Webroot hinzu.

Aber versuchen Sie, ein Modul zu erstellen, auf das überall verwiesen werden kann, das ressourcenunabhängig ist und Namenskonflikte vermeidet.

Wie stellen Sie sicher, dass Ihre Dateinamen nicht mit einigen verstreuten Anwendungen in Konflikt geraten, die versuchen, denselben Namen für Dateien zu verwenden, dasselbe gilt für JS, Bilder und CSS?

Über CAssetManager kann Yii::app()->assetManager private Ressourcen automatisch im öffentlichen Verzeichnis webroot/assets veröffentlichen

Verwandte Lernempfehlungen: yii Tutorial

Im Folgenden wird das Admin-Modul als Beispiel genommen

1 Platzieren Sie die benötigten Ressourcen unter modules/admin/assets.

2. Yii::app()->assetManager kann dann automatisch private Ressourcen im öffentlichen Verzeichnis, Website-Verzeichnis/Assets, veröffentlichen.

3 Erstellen Sie einen nicht in Konflikt stehenden Ordner im Website-Verzeichnis /assets, z. B. 2b31b42b, und kopieren Sie die Dateien in Ihr Verzeichnis modules/admin/assets dorthin.

wird durch den folgenden Code erhalten, ändern Sie die protectedmodulesadminAdminModule.php-Datei,

<?php 
class AdminModule extends CWebModule 
{ 
    private $_assetsUrl; 
   
    public function getAssetsUrl() 
    { 
        if($this->_assetsUrl===null) 
            $this->_assetsUrl=Yii::app()->getAssetManager()->publish(Yii::getPathOfAlias(&#39;application.modules.admin.assets&#39;)); 
        return $this->_assetsUrl; 
    } 
   
    public function setAssetsUrl($value) 
    { 
        $this->_assetsUrl=$value; 
    } 
}
Nach dem Login kopieren

und verwenden Sie dann $this->module- in /protected/modules/admin/views/layouts/main .php >assetsUrl kann Ihr CSS und andere Dateien aufrufen.

<link rel="stylesheet" type="text/css" href="<?php echo $this->module->assetsUrl; ?>/css/screen.css"/>
Nach dem Login kopieren

Aktualisierung des Assets vor der Verwendung erzwingen

 $baseJsUrl = Yii::app()->getAssetManager()->publish($baseJsPath, false, -1, YII_DEBUG);
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie referenziere ich Vermögenswerte in Yii?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage