1 回答
TA贡献1871条经验 获得超13个赞
它从未在运行时使用的 composer.json 文件。无论如何它没有用,它只被composer命令使用。如果您不在 composer生产机器上运行,则无需上传它。
您的项目并没有失败,因为“您没有使用代码部署 composer.json”,而是因为您正在转储具有特定结构的自动加载器,您实际上在配置中提到了该composer.json结构,然后尝试使用不同的目录结构运行服务器.
当您运行composer install并且composer dumpautoloader您的项目如下所示:
composer.json
src/ <--- this is where autoloader looks for your files.
--- yourCode/
--- moreCode/
--- vendor/
------ autoloader.php
但是然后在您的服务器上,您在您的服务器上
yourCode/
moreCode/
vendor/
--- autoload.php <--- this can't find the 'src' directory
解决方案不是上传目录的内容,src而是上传src目录本身。
任何其他需要使用自动加载器的脚本和其余代码都应该包含在内/var/www/test/src/vendor/autoload.php,并且一切都会正常工作。
如果你不想在src里面有一个目录test,那么你不应该在自动加载器生成期间拥有它。不要使您的开发和登台环境与您的生产环境不同。
你唯一的选择是在你的构建机器上做:
跑 composer install
搬到composer.json_src
更改composer.json因此键上声明的路径autoload不提及src
跑 composer dumpautoload
删除 composer.json
上传src内容。
它不能保证工作并且它是一个脆弱的解决方案,但问题是您试图以与工具设计背道而驰的方式使用该工具。
- 1 回答
- 0 关注
- 601 浏览
添加回答
举报