【问题标题】:Symfony2: dev to prod, win to unix, clear cacheSymfony2:开发到产品,赢到 unix,清除缓存
【发布时间】:2014-01-12 09:48:29
【问题描述】:

我写了一个小的 Symfony2-Webapp。这在开发和生产中取得了胜利。比我将所有文件上传到提供程序并遇到一些问题:

日志文件告诉我,树枝引擎找不到视图。这很有帮助,因为我不得不更正一个大写字母(索引而不是索引)——在 windows 下开发和在 unix 下生产总是一样的。

我更正了文件并上传了它。比我删除缓存(没有控制台)。

不过,错误仍然存​​在!

我能做什么?


新信息: 当不预热缓存(开发和产品)时,问题就存在了。如果使用控制台缓存:预热,则缓存生成正确。 我发现,在一个生成的文件中,函数“getTemplateName()”是错误的。该文件中的所有其他引用都是正确的。

很遗憾,我的服务器上没有控制台。


编辑:答案:

1) 错误是:request.CRITICAL:未捕获的 PHP 异常 InvalidArgumentException:“无法找到模板“sisicalBundle:Index:index.html.twig”。”在 /var/www/web1261/html/sisical/vendor/symfony/symfony/src/Symfony/Bridge/Twig/TwigEngine.php 第 133 行 {"exception":"[object]

我在 Eclipse 中搜索了洞 src 文件夹:我的代码不再使用“索引”(大写)(因为我更正了这个)。通过 composer 安装时,symphony 是否会在“供应商...”中创建源代码?

2) 我认为我不使用资产,它们不是问题。

3) 随着日志和缓存的写入,权限似乎还可以。

4) 好主意,但我找不到用途。我使用模板,因此没有“使用”-导入模板。搜索“索引”我发现缓存中生成了错误的模板名称。清除和加热缓存没有帮助。 是否有可能,使用 Index 作为包/文件夹名称时,twig 会生成错误?

【问题讨论】:

  • 实际产生的错误是什么?
  • 您是否安装并转储了资产?
  • 您是否设置了缓存和日志文件夹的可写权限?
  • 您可能更改了文件名,但忘记在 use 语句中更改类路径中的字母

标签: windows unix symfony production-environment


【解决方案1】:

我调试了一下:

当预热缓存时,FilesystemLoader 解析文件系统... > 运行良好。但是在没有缓存的情况下运行时,模板引擎使用 TemplateGuesser.php 从控制器名称计算文件夹名称。这个是大写的,因为它来自一个类名......

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

【讨论】:

    猜你喜欢
    • 2011-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-03
    • 1970-01-01
    • 2014-10-13
    • 1970-01-01
    相关资源
    最近更新 更多