2015-12-21 47 views
5

我刚刚安装了使用作曲家的yii2(高级)。我设置nginx的,等等Yii2新鲜安装:供应商/鲍尔/ jquery/dist路径是错误的

但它不工作:

Invalid Parameter – yii\base\InvalidParamException 

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

在文件夹“供应商/凉亭”有唯一的子文件夹“凉亭资产”与“jQuery的”等在里面。但在供应商/凉亭没有jquery。

如何解决这个问题?

回答

7

请参考installation guide。看来你是缺少资产插件:

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

请不要在多个问题上发布相同的答案。发布一个很好的答案,然后投票/标记以重复关闭其他问题。如果问题不是重复的,请按照问题_找出答案。 – josliber

+0

@josilber罗杰, – SilverFire

+0

更新至最新仍然无法正常工作! –

1

检查您的项目根目录下的composer.json文件。你应该有一个看起来像这样的部分;

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

这告诉作曲家在哪里找到鲍尔文件库。之后您可能需要运行作曲家更新才能更新地点位置。

+0

'composer update'解决了我的问题。 – Roger

+0

在我编辑完最后一个** s **之后,此解决方案适用于我。它应该是''bower-asset-library':“vendor/bower-asset”' – contemplator

+0

@contemplator只要具有该名称的文件夹实际存在,它实际上并不关心资产文件夹的名称。在您的本地计算机上,该文件夹是凉亭资产。在我的矿山它是凉亭资产。只要作曲家文件中的条目指向正确的位置,名称就无关紧要了。 –

-1

看来你jquery/distbower/bower-asset下下,而不是bower。 为了解决您的问题,请移动所有bower-asset内容,包括jquery子文件夹和其他类似文件:bootstrap,yii2-pjax,puny codebower文件夹(上一级)。所有这些子文件夹将与bower-assetbower文件夹下处于同一级别。如果需要,现在可以删除bower-asset文件夹。

你之前有:

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

现在您有:

vendor/bower/jquery/dist...

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

这将解决您的问题,yii2应用程序将按其应有的方式工作。

+0

这完全是错误的方式,对不起。您在此将您的资产从更新中分离出来。相同的文件夹将被重新创建并更新...但可悲的是没有使用;)! – PLM57

1

确保已执行此命令:

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

另外,检查你的作曲家。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.lock文件或composer install