gpt4 book ai didi

php - 我如何在 yii 模块中添加脚本和样式表

转载 作者:可可西里 更新时间:2023-11-01 00:06:07 25 4
gpt4 key购买 nike

我是 yii 的新手。我刚刚在 yii 中创建了一个模块 文件结构如下

 -yii
-protected
-modules
-admin
-controller
-model
-view
-layout
-main.php
-css
-style.css
-images
-logo.jpg

我能够将布局设置成这样

'modules'=>array(
// uncomment the following to enable the Gii tool

'admin'=>array(
'layoutPath' => 'protected/modules/admin/views/layouts', ;

)

现在布局是从管理模块呈现的,问题是我无法使用

加载样式表
<link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/protected/modules/admin/css/reset.css"  media="all">

有人知道在 yii 中加载样式表的正确方法吗

最佳答案

protected 文件夹下的所有内容确实是 protected ,并且不可公开访问。

在您的情况下,您正在使用一个模块并且您的文件位于 protected 文件夹中,您需要“发布”它们以供公众访问。 Yii 中发布内容的默认公共(public)文件夹称为“ Assets ”。并发布我们将使用 CAssetManager .

首先创建一个文件夹,其中包含您需要公开访问的所有 css、js 和图像。随心所欲地命名它,但它的“ Assets ”是标准的,所以你的文件结构看起来像这样:

 -yii
-protected
-modules
-admin
-controller
-model
-view
-layout
-main.php
-assets
-css
-style.css
-js
-images
-logo.jpg

在您的模块中创建一个属性来存储已发布 Assets 的公共(public) url,以及一个访问它的方法。

private $_assetsUrl;

public function getAssetsUrl()
{
if ($this->_assetsUrl === null)
$this->_assetsUrl = Yii::app()->getAssetManager()->publish(
Yii::getPathOfAlias('admin.assets') );
return $this->_assetsUrl;
}

然后您可以像这样访问您的 Assets :

<link rel="stylesheet"
type="text/css"
href="<?php echo $this->module->assetsUrl; ?>/css/main.css"/>
...
<div id="logo">
<?php echo CHtml::link(
CHtml::image($this->module->assetsUrl.'/images/logo.png'),
array('/xxii')); ?>
</div>

Further reading

关于php - 我如何在 yii 模块中添加脚本和样式表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12969358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com