RAILS_ENV更改app / layouts / application.html.erb内容的内容

时间:2017-07-24 15:40:03

标签: ruby-on-rails asset-pipeline

我正在使用rails应用,并且最近已将<%= javascript_include_tag "application" %>app/layouts/application.html.erb移至</body>标记的正下方。

当我在开发模式下启动服务器并查看localhost:3000的源代码时,我会按预期在关闭正文标记下方看到javascript。但是,当我以生产模式启动服务器时,javascript会显示在旧版本的<head>标记中。

其他人是否了解可能导致开发/生产环境中app/layouts/application.html.erb文件的这种不同解释的原因?任何其他人可以提供的指示将不胜感激。

1 个答案:

答案 0 :(得分:2)

来自Rails guide on caching

  

这是对三种缓存技术的介绍:page,   动作和片段缓存。默认情况下,Rails提供片段   缓存。要使用页面和操作缓存,您需要添加   string red = "Red"; string blue = "Blue"; string yellow = "\n\n"; string green = string.Empty; List<string> ColorList = new List<string>() { red, blue, yellow, green }; string colors = string.Join(" ", ColorList.Where(s => !string.IsNullOrEmpty(s))); actionpack-page_caching给你   actionpack-action_caching

     

默认情况下,仅在生产环境中启用缓存。要在本地使用缓存,你会想要   通过设置在本地环境中启用缓存   相关的Gemfileconfig.action_controller.perform_caching    config / environments / * .rb 文件:

true

您只需清除缓存文件,因为rails默认在生产环境中缓存这些文件。