composer安装yii2.0.6后,运行提示vendor\bower/jquery/dist文件不存在

今天想要试试yii2.0,安装使用的composer

composer global require "fxp/composer-asset-plugin:~1.0.0"
composer create-project --prefer-dist yiisoft/yii2-app-basic basic

通过以上安装,成功完成了yii2.0的安装,但是在运行
http://localhost/basic/web/index.php
后,报了以下错误:

The file or directory to be published does not exist: D:\xampp\htdocs\basic\vendor\bower/jquery/dist

通过查看文档,我发现在vendor\bowerjquery\dist目录中确实不存在dist,正确目录是:vendor/bower/bower-asset\jquery\dist
但是不知道在哪里进行相应配置。

初学者,请大家给予知道一下

阅读 13.4k
评论
    9 个回答

    自己解决了,这个问题。现在把答案在这里说一下,
    通过对比composer的项目,与直接下载的项目(可直接运行)。主要区别是在 vendor/bower 这个目录

    composer安装的项目该目录结构:
    图片描述

    直接下载的项目该目录结构:
    图片描述

    对比发现composer安装的项目,多了一级 bower-asset 目录,所以在运行:http://localhost/basic/web/index.php 时,报错说相关的jquery与bootstap文件找不到。

    分析到这里,很明白就是代码相应资源的路径有问题,所以只要解决相应的资源路径即可。
    yii2.0.6中管理jquery资源的类是:yii\web\JqueryAsset
    代码如下:

    class JqueryAsset extends AssetBundle
    {
        public $sourcePath = '@bower/jquery/dist';
        public $js = [
            'jquery.js',
        ];
    }

    将其$sourcePath更改为:@bower/bower-asset/jquery/dist即可。
    然后修改bootstrap相关路径,非常类似,需要修改的三个类,分别是:

    • yii\bootstrap\BootstrapAsset

    • yii\bootstrap\BootstrapPluginAsset

    • yii\bootstrap\BootstrapThemeAsset

    注意:上面所有的类都是命名空间,而不是实际路径,至于实际路径,可参考对应的自动加载文件找到。

      相似问题
      推荐文章