Yii2新安装:vendor/bower/jquery/dist路径错误

10

我刚使用Composer安装了yii2 (advanced),已经设置了Nginx等。

但是它不能正常工作:

Invalid Parameter – yii\base\InvalidParamException

The file or directory to be published does not exist: /srv/www/site/vendor/bower/jquery/dist

在文件夹 'vendor/bower' 中,只有子文件夹 'bower-assets' 包含了 'jquery' 等内容。但是在 vendor/bower 中没有找到 jquery。

如何解决这个问题?

5个回答

14

请参考安装指南。看起来您缺少资产插件。

composer global require "fxp/composer-asset-plugin:~1.2.0"

1
请勿在多个问题中发布相同的答案。发表一个好的答案,然后投票/标记关闭其他重复的问题。如果问题不是重复的,请根据问题量身定制您的答案。 - josliber
从我的测试来看,这个包确实需要被声明为global。我尝试将其仅包含在我的Yii项目中,但没有成功。 - Tom

5

请确保您已执行此命令:

composer global require "fxp/composer-asset-plugin:~1.2.0"

另外,请检查您的composer.json文件,确保包含以下内容:

虽然已被弃用,但是Yii2中默认选项为:

"extra": {
    "asset-installer-paths": {
        "npm-asset-library": "vendor/npm",
        "bower-asset-library": "vendor/bower"
    }
},

新选项
"config": {
    "fxp-asset": {
        "installer-paths": {
            "npm-asset-library": "vendor/npm",
            "bower-asset-library": "vendor/bower"
        },
    }
},

然后运行composer update,如果您已经有了一个composer.lock文件,或者运行composer install,如果您还没有composer.lock文件。


1
我遇到了同样的问题,这是我如何解决的-
  • go to vender .

    $ cd projectFile/vendor/
    
  • Rename bower-asset with bower

    $ mv bower-asset/ bower
    
  • Restart mamp/xamp

那个问题已经解决了,http://localhost:8888/ 现在运行良好。

2
错误的做法。当你执行 'composer update' 命令后,它将会再次更新。 - cha

1

请检查您项目根目录下的composer.json文件。您应该有一个类似于以下的部分;

    "asset-installer-paths": {
        "bower-asset-library": "vendor/bower-assets"
    }

这告诉Composer在哪里找到Bower文件库。您可能需要运行composer update以更新位置。

这个解决方案对我有用,我将最后一个 s 删除后它就起作用了。应该是 "bower-asset-library": "vendor/bower-asset" - contemplator
@contemplator 实际上,资产文件夹的名称并不重要,只要存在一个具有该名称的文件夹即可。在您的本地计算机上,该文件夹名为bower-asset。在我的计算机上,它是bower-assets。名称无关紧要,只要composer文件中的条目指向正确的位置即可。 - Joe Miller

-1

看起来你的 jquery/distbower/bower-asset 下而不是在 bower 下。 为了解决这个问题,请将所有的 bower-asset 内容,包括 jquery 子文件夹和其他文件夹,如:bootstrapyii2-pjaxpuny code 等,移动到 bower 文件夹中(向上一级)。所有这些子文件夹都将与 bower-assetbower 文件夹下处于同一级别。现在,如果你想的话,可以删除 bower-asset 文件夹。

之前你有:

vendor/bower/bower-asset/jquery/dist/...

现在你有:

vendor/bower/jquery/dist...

不应该有任何 bower-asset 子文件夹。

这将解决你的问题,yii2 应用程序将正常工作。


1
这完全是错误的方式,抱歉。您现在将您的资产与更新分离。同样的文件夹将会被重新创建并更新...但遗憾的是不会被使用 ;)! - PLM57
错误的做法。当你执行'composer update'时,它会再次更新。 - cha

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接