我目前精神崩溃,把头撞在不同的墙壁上。 我正在尝试将我的应用发布到产品上,并且已经尝试了好几个星期。 我经常遇到此错误:Symfony - twig - Autoloader expected class
有时候,清除缓存后,运行composer安装/更新了十几次,此错误消失了,.....我又得到了旧错误!
如果您曾经看过类似这样的内容,请提供帮助
答案 0 :(得分:0)
您如何在产品环境中进行部署? 也许有些文件加倍了,所以加载程序无法正确识别它们? 某些部署方法不会删除在项目中删除的文件(PHP Storm部署)。
上次我在Twig_Environment上出错。就是在我将项目的Symfony版本从3.3升级到3.4之后。
对于Sf 3.3,在启用的捆绑包中,在services.yml上定义的所有服务都是PUBLIC。 从3.4开始,它们默认都是PRIVATE。 我所做的是在我拥有的每个services.yml文件中添加一些.yml代码:
_defaults:
public: true
没有此代码,Twig_Environment无法看到某些Twig扩展和其他类。
我也阅读了您的最后一篇文章。所以您无权访问控制台,是吗?
也许尝试让您的项目的第二个实例(本地)在此实例中一切都设置为prod env? 然后尝试:
composer dump-autoload -o
以及其他产品准备工作
php bin/console a:install --symlink
php bin/console a:dump --env=prod
php bin/console c:c --env=prod
此后,您应该在生产服务器上上传vendor / autoload.php,生成的资产等。并且这应该发生在每个站点更新中。 SF项目没有SSH访问权限真的很糟糕。