在 Heroku 上部署 Symfony5/php7 应用程序时找不到模板"base.html.twig"错误消息



在将我的Symfony5/php7.4/MariaDB应用程序从Github部署到Heroku时,我收到以下错误消息:"{消息}:}未捕获PHP异常Twig\Error\LoaderError:}无法在"home.html.Twig"中找到模板"base.html.Twig"(查看:/app/templates,/app/vendor/symfony/tritch-bridge/Resources/views/Form);尽管我的项目中的templates文件夹中确实有一个base.html.twig文件。

我已经做了什么,因此没有考虑失败的原因:

  • 我在我的项目的根目录下创建了一个procfile,声明web:heroku-hp-apache2-public/这是我的项目中文件的确切名称,也就是说public/
  • 由于composer require apache pack命令,我在项目的根目录下添加了一个.htaccess文件
  • 我在Heroku中使用Heroku附带的正确插件DB url设置了我的配置变量,并将我的APP_ENV设置为prod environment
  • 我在项目中设置了所有的bundle配置,以便它们也能在prod环境中工作
  • 我重新部署了我的应用程序
  • 在我的开发环境中,应用程序运行良好。我在composer.josn文件中有一个自动加载psr4策略,如下所示:
"autoload": {
"psr-4": {
"App\": "src/"
}
}

指向App命名空间的src文件。

  • 所有文件都有一个正确的命名空间
  • 我的文件目录名称类似于";"公共"模板";dot不包含大写字母,因为我在研究SOF时看到了一篇类似的帖子,指出heroku系统使用的Linux是区分大小写的。这似乎不是我的问题
  • 我甚至把我的";应用程序";命名空间转换为";应用程序";命名空间,在我的自动加载psr4中,作为错误消息mentioned";查看:/app/templates";没有大写字母。这生成了一个由Heroku失败的构建

再一次,尽管我专门为Heroku生产环境设置了新的环境变量,但只有在Heroku上部署时才出现这个问题。

有人知道这个错误消息的原因吗?非常感谢。

附言:如果你因为发现这个问题不清楚或没有用,或者没有显示出足够的研究结果而对它进行评分——尽管我确实这样做了——请具体并添加一条评论来解释你的负面评分的原因,以保持这个地方的定性,并帮助我理解你的评分。

它最终在我的Heroku生产环境中运行良好。我做了几个改动。可以解释问题根源的是,我在扩展指令的几个模板中使用了简单的引号,如下所示:;{%extends‘base.html.twitch‘%},我还注意到在其中一个模板指令中,引号前有一个空格,如下所示:{%extends"base.html.twig"%}。我编辑了这些说明,用双引号替换了简单的引号,并删除了模板名称中的空格。应用程序不久后正确部署。这可能是Twig加载错误消息的答案。