ホームページ  >  記事  >  PHPフレームワーク  >  Yii のフォルダー アセットとは何ですか?

Yii のフォルダー アセットとは何ですか?

青灯夜游
青灯夜游オリジナル
2019-12-23 17:36:225725ブラウズ

Yii のフォルダー アセットとは何ですか?

#yii のアセット フォルダーとは何ですか?

アセットは通常、いくつかのスタイル ファイル (css)、スクリプト ファイル (js)、画像ファイル (image)、およびフロントエンドとバックエンドのその他のコンテンツを保存するフォルダーであるため、Yii で使用できます。 :app() ->request->baseUrl を併用します(プロジェクト名を取得するため)。

アセットの役割は、モジュール化とプラグインを容易にすることです。一般的に、セキュリティ上の理由から、URL を介して保護されたファイルにアクセスすることは許可されていませんが、モジュールも分離したいので、 URL を介して簡単にアクセスできるように、ディレクトリ内のファイルをアセットにコピーします。

$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

モジュールでリソースを追加する必要がある場合は、Webroot から直接追加するだけです。

ただし、どこでも参照でき、独立したリソースを持ち、名前の競合を回避できるモジュールを作成するようにしてください。

同じ名前のファイル (js、画像、css についても同様) を使用しようとしている散在するアプリケーションとファイル名が競合しないようにするにはどうすればよいですか。

CAssetManager を通じて、Yii::app()->assetManager はプライベート リソースをパブリック ディレクトリ webroot/assets に自動的に公開できます

以下は例として admin モジュールを取り上げます

1. 必要なリソースを module/admin/assets の下に配置します。

2. その後、CAssetManager を通じて、Yii::app()->assetManager はプライベート リソースをパブリック ディレクトリ Web サイトのディレクトリ/assets に自動的に公開できます

3. Yii は自動的にランダムなリソースを作成します/assets ディレクトリの下に競合しないフォルダー (2b31b42b など) を配置し、そこに modules/admin/assets ディレクトリ内のファイルをコピーします。

次のコードで取得した protected\modules\admin\AdminModule.php ファイルを変更します。

<?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;  
    }  
}

次に、/protected/modules/admin/views/layouts/main で $ を使用します。 php this->module->assetsUrl は CSS やその他のファイルを呼び出すことができます。

推奨学習: yii チュートリアル

以上がYii のフォルダー アセットとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。