【问题标题】:Symfony2: JavaScript doesn't work on Prod environmentSymfony2:JavaScript 不适用于 Prod 环境
【发布时间】:2012-04-12 00:43:00
【问题描述】:

在开发环境中它可以完美运行,但是当我切换到 Prod 时它什么也没做。看起来它没有附加事件侦听器(当我使用 Chrome 检查元素时,没有在应该的位置检测到事件侦听器)。有任何想法吗?我已经清除了两个缓存,也许重要的是说我已经复制了

_assetic:
resource: .
type:     assetic

从 routing_dev.yml 到 routing.yml,因为如果我不这样做,我会收到以下 500 Internal Server Error:

request.CRITICAL: Twig_Error_Runtime: An exception has been thrown during the rendering of a template ("Route "_assetic_f582f37" does not exist.")

【问题讨论】:

  • 我自己也偶然发现了同样的问题,只是想知道您是否找到了真正的解决方案?
  • 那一刻我刚刚将文件从 bundles 文件夹移动到 web/js 文件夹,我认为这与 Symfony 版本有关,因为我在其他开发中从未遇到过同样的问题。
  • 我刚刚发现了我的问题。我没有在不工作的 JS 上关闭 标记。这在 Dev 模式下很好,但在 Prod 模式下不行。奇怪,但现在一切都修复了。谢谢你的回复。

标签: javascript symfony twig assetic


【解决方案1】:

您是否已转储资产文件?

php app/console assetic:dump --env=prod --no-debug

http://symfony.com/doc/current/cookbook/assetic/asset_management.html#cookbook-assetic-dumping

【讨论】:

  • 是的,尝试过,但结果相同。无论如何,如果我不转储它们,如果我转到“查看页面源代码”,我仍然可以访问 CSS 和 JS,所以我认为问题不会如此。 CSS 在这两种环境下都可以正常工作,只是 JS 似乎在 Prod 上不起作用,但不知道是什么原因造成的。就像应用程序正在跳过
  • 另一件有用的事情:当我转储文件时,它创建了物理 .js 文件,但没有创建 .css 文件。
  • 我也遇到过类似的问题(使用我认为很重要的 Windows)。 cache:clear 将创建两个文件夹“prod”和“prod_new”。 Prod 文件夹缺少一些东西。然后assetic:dump 也不会转储所有文件。我不知道为什么,所以我想这没有帮助,只是认为上面的命令可能有用。您是否使用--no-debug 清除缓存?不管有没有那个开关,我的结果好坏参半。
  • 非常奇怪的问题,我已经将所有的 bundle js 文件移动到 web/js 中,将这些文件夹保持为空,现在它可以工作了。它有点混乱,但至少效果很好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多