这是我的Assetbundle代码。
public $basePath = '@webroot';
public $baseUrl = '@web';
public $css = [
'css/site.css',
'css/normalize.css',
'chosen/chosen.css',
];
public $js = [
'js/classie.js',
];
当我使用这段代码并像这样得到视图文件时,也得到了404 not found错误:
> http://site.loc/frontend/web/chosen/chosen.css
> http://site.loc/frontend/web/css/css/normalize.css
> http://kometonline.loc/frontend/web/js/classie.js
同时,site.css运行得很好。如何纠正这个错误?
发布于 2015-06-04 06:45:17
这仅仅意味着文件不存在于此路径中。
将它们移动到资源束中的正确路径或更改路径。
发布于 2017-05-12 11:56:50
$baseUrl = '@web'
您需要将css和js文件的路径更改为
public $basePath = '@webroot';
public $baseUrl = '@web';
public $css = [
'frontend/web/css/site.css',
'frontend/web/css/css/normalize.css',
'frontend/web/chosen/chosen.css',
];
public $js = [
'http://kometonline.loc/frontend/web/js/classie.js',
];
或者你可以把你的css,js和directory文件夹移到你的根目录下,不改变路径。
在我的示例中,我在根目录下创建了assets文件夹,并将css、js和etc文件夹放入其中:
public $basePath = '@webroot';
public $baseUrl = '@web';
public $css = [
'assets/css/main.css',
'assets/css/custom.css',
'assets/css/responsive.css',
];
public $js = [
'assets/js/bootstrap.min.js',
];
public $depends = [
'yii\web\YiiAsset',
];
如果您想覆盖和使用google的托管库,并将时间戳添加到css和js文件中,请将此添加到您的配置中。为
组件中的高级模板./frontend/config/main.php
组件中的基本模板./config/web.php
'components' => [
'assetManager' => [
'appendTimestamp' => true, //adds timestamp to assets
'assetMap' => [
'jquery.js' => '//ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js', //Selecting jquery
],
],
],
更多信息http://www.yiiframework.com/doc-2.0/guide-structure-assets.html
https://stackoverflow.com/questions/30636239
复制