【问题标题】:How do I prevent vendor assets from being precompiled every time?如何防止供应商资产每次都被预编译?
【发布时间】:2014-03-05 06:19:30
【问题描述】:

我预编译了我的所有 Javascript 文件,以便可以从其他页面中调用它们。然而,现在 Rails 每次都会预编译 vendor 中的所有文件,即使它们很少更改。如何让它在预编译时忽略供应商并只使用以前预编译的供应商文件?

这是我的 production.rb 代码:

config.assets.precompile += ['*.js']

更新: 我希望它忽略供应商有两个原因:

  1. 预编译所有文件大约需要 5 分钟,所以我只希望它使用以前的文件。
  2. 更糟糕的是,它无法预编译其中一个文件,所以我必须自己重做那个文件。

如何加快速度并跳过这些文件?

【问题讨论】:

  • 如果文件没有改变,资产管道应该生成相同的预编译文件,并在文件名中添加相同的哈希。您是否不想尝试编译这些文件,因为它们没有更改?
  • 你有什么尝试吗?
  • @steakchaser,查看更新。
  • 我没有给你一个好的答案,但基本上你需要做的是弄清楚如何让管道只编译已经改变的资产——或者通过@987654324的一些定制@ 或通过自定义 rake 任务。首先,也许你可以看看/使用这个 gem:github.com/ndbroadbent/turbo-sprockets-rails3
  • 我还看到了这篇文章,其中显示了一些自定义的Procs 人们为控制哪些资产被编译。这不是您问题的直接解决方案,但如果上述 gem 不起作用,可能会帮助您获得一些想法。 stackoverflow.com/questions/10097993/…

标签: javascript ruby-on-rails heroku ruby-on-rails-3.2 asset-pipeline


【解决方案1】:

这是一个很好的特性,每当我们的静态文件发生一些变化时,它应该被预编译以获得更快的性能。

只需输入以下代码即可跳过它:

config/environmets/production.rb

config.assets.compile = true

现在,它不会每次都进行预编译,而是强制执行实时编译。

【讨论】:

  • 我已经有了。我不希望它每次都重做 vendor 中的所有文件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-21
  • 2011-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-27
相关资源
最近更新 更多