gpt4 book ai didi

ruby-on-rails - 如何让 Rails 服务器刷新预编译 Assets ?

转载 作者:行者123 更新时间:2023-12-04 11:38:14 25 4
gpt4 key购买 nike

我正在使用内置 Webrick 服务器在我的 localhost:3000 上的生产环境中测试我的 Rails 4 应用程序。当我运行 RAILS_ENV=production bundle exec rake assets:precompile Assets 在公共(public)中重建, list 也被重建,但页面仍然使用以前的 Assets 名称提供服务。

重新启动 rails 服务器会使新 Assets 出现。有没有一种不太极端的方法来实现这一点,当我将它移植到运行 Phusion Passenger 的生产服务器时,它会如何表现。我真的不想重新启动 Apache 来让我的 Assets 运转起来。

最佳答案

如果您没有更改 Assets 的内容,则预编译版本将与之前的版本相同。如果你稍微改变一下,指纹就会改变,应用程序只会请求新的指纹,因为你设置了config.assets.digest = true .

无论如何,另一种解决方法是:

赶紧跑:

rake assets:clean

进而,
rake assets:precompile

这使得 Assets 管道中的所有内容都可以重建并重新提供服务。

在编辑每个文件的内容时,Rails 会自动清除每个文件的缓存。

如果以上任何一个都不起作用,请尝试以下方法:
config.serve_static_assets = true配置/环境/生产.rb

config.serve_static_assets 将 Rails 本身配置为提供静态 Assets 。默认为 true,但在生产环境中被关闭,因为用于运行应用程序的服务器软件(例如 Nginx 或 Apache)应该提供静态 Assets 。与默认设置不同,在运行(绝对不推荐!)或使用 WEBrick 在生产模式下测试您的应用程序时将其设置为 true。否则,您将无法使用页面缓存,并且对公共(public)目录下定期存在的文件的请求无论如何都会影响您的 Rails 应用程序。

引用: http://guides.rubyonrails.org/configuring.html#rails-general-configuration

希望能帮助到你 :)

关于ruby-on-rails - 如何让 Rails 服务器刷新预编译 Assets ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23182711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com