Symfony2:dev to prod,win to unix,clear cache

时间:2014-01-12 09:48:29

标签: windows unix symfony production-environment

我写了一个小的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是否可能生成错误?

1 个答案:

答案 0 :(得分:0)

我调试了一下:

当加热缓存时,FilesystemLoader解析文件系统...>效果很好。但是当没有缓存运行时,模板引擎使用TemplateGuesser.php从控制器名称计算foldername。这个是资本,因为它来自一个类名......

我现在看到,我在其他项目中使用大写字母。这次我认为'总是小案例是最简单的......'。