为了账号安全,请及时绑定邮箱和手机立即绑定

在Rails生产中,config.assets.install=true,为什么不呢?

/ 猿问

在Rails生产中,config.assets.install=true,为什么不呢?

桃花长相依 2019-07-02 16:13:45

在Rails生产中,config.assets.install=true,为什么不呢?

安装的默认Rails应用程序rails newconfig.assets.compile = false在生产中。

做事情的最普通的方法就是跑rake assets:precompile在部署应用程序之前,要确保编译了所有资产管道资产。

如果我设置config.assets.compile = true在生产中?

我不需要跑precompile更多。我相信第一次请求资产时,就会对其进行编译。这将是第一次对性能的影响(这意味着您通常需要在生产中使用js运行时才能做到这一点)。但除了这些缺点之外,在资产被懒散地汇编之后,我所有对该资产的后续访问都将具有性能命中,该应用程序的性能将是完全一样与预编译资产一样,在这个初始的第一次延迟编译之后。这是真的吗?

我遗漏了什么吗?任何其他不应设置的理由config.assets.compile = true在生产中?如果我在生产中有一个JS运行时,并且愿意为第一访问资产,以换取不必运行precompile这有道理吗?


查看完整描述

3 回答

?
慕码人8056858

减少预编译的开销。

Precompile everything initially with these settings in production.rb# Precompile *all* assets, except those that start with underscoreconfig.
assets.precompile << /(^[^_\/]|\/[^_])[^\/]*$/

然后,您可以简单地将图像和样式表作为*.html.erb或“/Asset/web.png”中的“/Asset/样式表.css”使用。


查看完整回答
反对 2019-07-02
?
HUWWW

任何使用Heroku的人:

如果部署到赫库,如果未包含已编译的资产,它将在部署期间自动为您进行预编译。public/assets(没有承诺)所以不需要config.assets.compile = true,或者提交预编译资产。

Heroku的文档是这里..一个CDN建议删除dyno资源上的负载。


查看完整回答
反对 2019-07-02

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信