2012-08-10 61 views
5

我通过资产(在一个目录中的所有脚本在树枝中的块)压缩我的JavaScript,它可以在产品模式下正常工作。现在我想为我的prod env使用调试模式,因此我将资源切换到配置中的调试,清除缓存并通过调试转储资源。Symfony 2.0资产转储在调试模式下产生错误的名称

这适用于某些javascripts,但不是全部。 Symfony为它们添加了一个后缀数字,这个数字在网站(javascript标签)上与真实文件相反更高(一个)。有时清理缓存和倾倒再次解决了这个问题,但这次没有争议。

例如: 它转储:/web/js/main_part_3_jquery-ui_6.js 但用途:/web/js/main_part_3_jquery-ui_1.js

那么,如何解决这个问题?

编辑: 清理缓存后,wron后缀不会出现在对站点的第一次请求中。

+0

什么命令你用于资产转储? – 2012-08-15 09:46:05

+0

assetic:dump --env = prod – Johni 2012-08-15 11:31:26

+1

这是资产调试模式产生多个文件的预期行为。你为什么要在prod中使用调试模式? (即:“现在我想用我的prod环境调试模式”WTF?) – AdrienBrault 2012-08-18 15:04:10

回答

3

由于app/console assetic:dump适合缓存yml文件 - 每次更改配置时都应清除缓存以便转储资产。

最重要的是要做到在这个序列:

rm -rf app/cache/* 
app/console assets:install web 
app/console assetic:dump 

当然,与调试键,需要环境等

+2

是的,我试图手动删除缓存,也没有解决问题。还有一个问题是,它在我的开发机器上运行(Win),而不是在服务器上运行(Linux)。 – Johni 2012-08-10 13:05:49

2

我曾多次产生的资产和symfony中的类似的问题不包括展出的好东西。

这是因为在我的情况下启用了缓冲区缓存,并且显然配置错误。 (显然,当你需要新版本的文件时它是有用的,例如当你在dev中更新.js但不想破解产品时)

因此,在config.yml中禁用它将修复它。

 
assetic: 
    workers: 
     cache_busting: 
      enabled: false