我写了一个小的Symfony2-Webapp。这在dev和prod中赢得了胜利。比我上传所有文件到提供商并遇到一些问题:
日志文件告诉我,twig-engine找不到视图。这有助于,因为锯,我必须纠正一个资本(索引而不是索引) - 它总是在windows下开发并在unix下生成。
我更正了文件并将其上传。比我删除了缓存(没有控制台)。
但是,错误仍然存在!
我该怎么办?
新信息: 当没有预热缓存(dev和prod)时,问题就存在了。如果使用console cache:warmup,则生成的缓存比正确。 正如我发现的那样,在一个生成的文件中,函数'getTemplateName()'是错误的。该文件中的所有其他引用都是正确的。
可悲的是,我的服务器上没有控制台。
编辑:答案:
1)错误是: request.CRITICAL:未捕获的PHP异常InvalidArgumentException:“无法找到模板”sisicalBundle:Index:index.html.twig“。” at /var/www/web1261/html/sisical/vendor/symfony/symfony/src/Symfony/Bridge/Twig/TwigEngine.php第133行{“exception”:“[object]
我在eclipse中搜索了一个漏洞src-folder:我的代码中没有一个使用'Index'(带资本)了(因为我纠正了这个)。当通过composer安装时,symphony会在'供应商......'中创建源吗?
2)我认为我不使用资产而且不是问题。
3)写入日志和缓存时,权限似乎没问题。
4)好主意,但我找不到用处。我使用模板,没有“使用” - 导入模板。搜索“索引”我发现缓存中生成了错误的模板名称。清除和加热缓存无济于事。 使用Index作为包/文件夹名称时,twig是否可能生成错误?答案 0 :(得分:0)
我调试了一下:
当加热缓存时,FilesystemLoader解析文件系统...>效果很好。但是当没有缓存运行时,模板引擎使用TemplateGuesser.php从控制器名称计算foldername。这个是资本,因为它来自一个类名......
我现在看到,我在其他项目中使用大写字母。这次我认为'总是小案例是最简单的......'。