Я новичок в 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
Все под вашей защищенной папкой действительно защищено, а не доступно для общественности.
в вашем случае, что вы используете модуль, а ваши файлы находятся в защищенных папках, вам нужно «публиковать» их, чтобы они были общедоступными. общедоступную папку по умолчанию для опубликованных материалов в Yii, называемую «активы». и для публикации мы будем использовать CAssetManager .
Сначала создайте папку, содержащую все ваши css, js и изображения, для которых вам нужен открытый доступ. назовите его, как хотите, но стандартизируйте его «активы», так что ваша файловая структура выглядит так:
-yii -protected -modules -admin -controller -model -view -layout -main.php -assets -css -style.css -js -images -logo.jpg
В вашем модуле создайте свойство, которое будет хранить общедоступный URL-адрес опубликованного актива и метод доступа к нему.
private $_assetsUrl; public function getAssetsUrl() { if ($this->_assetsUrl === null) $this->_assetsUrl = Yii::app()->getAssetManager()->publish( Yii::getPathOfAlias('admin.assets') ); return $this->_assetsUrl; }
Затем вы можете получить доступ к своим активам следующим образом:
<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>
дальнейшее чтение