【发布时间】:2019-11-30 01:37:13
【问题描述】:
Yii2 未找到资产。
设置从地址/前端/web到站点根目录的转发。
.htaccets
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/(admin)
RewriteRule ^admin/assets/(.*)$ backend/web/assets/$1 [L]
RewriteRule ^admin/css/(.*)$ backend/web/css/$1 [L]
RewriteRule ^admin/js/(.*)$ backend/web/js/$1 [L]
RewriteCond %{REQUEST_URI} !^/backend/web/(assets|js|css|js)/
RewriteCond %{REQUEST_URI} ^/(admin)
RewriteRule ^.*$ backend/web/index.php [L]
RewriteCond %{REQUEST_URI} ^assets
RewriteRule ^assets/(.*)$ frontend/web/assets/$1 [L]
RewriteCond %{REQUEST_URI} ^css
RewriteRule ^css/(.*)$ frontend/web/css/$1 [L]
RewriteCond %{REQUEST_URI} ^js
RewriteRule ^js/(.*)$ frontend/web/js/$1 [L]
RewriteCond %{REQUEST_URI} ^images
RewriteRule ^images/(.*)$ frontend/web/images/$1 [L]
RewriteRule ^(.*)$ frontend/web/$1 [L]
RewriteCond %{REQUEST_URI} !^/(frontend|backend)/web/(assets|css|js)/
RewriteCond %{REQUEST_URI} !index.php
RewriteCond %{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ frontend/web/index.php
</IfModule>
main.php
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'' => 'site/index',
'<action>'=>'site/<action>',
],
],
'assetManager' => [
'basePath' => '@webroot/assets',
'baseUrl' => '@web/assets'
],
'request' => [
'baseUrl' => ''
]
一切正常,但样式不行。
【问题讨论】:
-
请给
/frontend/assets/AppAsset.php文件$basePath和$baseUrl路径? -
参考Yii2. Access to higher level folder。也许有帮助。
-
/frontend/assets/AppAsset.php -
namespace frontend\assets; use yii\web\AssetBundle; class AppAsset extends AssetBundle { public $basePath = '@webroot'; public $baseUrl = '@web'; public $css = [ 'frontend/web/css/site.css', ]; public $js = [ ]; public $depends = [ 'yii\web\YiiAsset', 'yii\bootstrap\BootstrapAsset', ]; } -
我按照here 所示做了,但没有帮助
标签: apache .htaccess mod-rewrite yii2 yii2-advanced-app