javascript - 为什么 Rails 的 Assets 缓存在暂存环境中不适用于 JS?

标签 javascript ruby-on-rails caching

我将我的 CSS 和 JS 设置为缓存在 RAILS_ROOT/app/views/layouts/application.html.erb 中:

<%= stylesheet_link_tag 'reset', ...
                        'layout', 'colors', :cache => 'cache/all' %>
<%= javascript_include_tag 'jquery-1.3.2.min', ...
                           'application', :cache => 'cache/all' %>

如果我在我的开发环境中打开缓存,一切都会按计划进行:

# in RAILS_ROOT/config/environments/development.rb:
config.action_controller.perform_caching = true

当我在暂存中放置同一行时,/stylesheets/cache/all.css 会正确生成,但是 /javascripts/cache/all.css 不是't。不过,该行是在 HTML 中生成的,就好像它是:

<script src="/javascripts/cache/all.js?1253556008" type="text/javascript"></script>

转到该 URL 会产生一个空的 JS 文件(虽然不是 404,但很奇怪)。文件系统上没有文件(在 RAILS_ROOT/public/javascripts/cache/all.js 下)。

有什么想法吗?

最佳答案

希望不大,但请尝试删除 all.js 文件并查看应用程序能否正确重建它。一旦文件就位,Rails 似乎永远不会尝试重建它,所以如果它由于某些错误或其他原因而格式不正确,它可能会留在那儿。

关于javascript - 为什么 Rails 的 Assets 缓存在暂存环境中不适用于 JS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1455958/

相关文章:

swift - mac os x 嵌入式 webkit webview 中的离线应用程序缓存支持

ios - NSURL 协议(protocol)。 requestIsCacheEquivalent 从未调用过

docker - 使用--cache-from复制Gemfile时,Docker构建未使用缓存

ruby-on-rails - 如何在 Rails 应用程序中对 Gems 加载时间进行基准测试

css - 简单形式 : nested model form elements on one line?

ruby-on-rails - Rails 6 Font Awesome 5 生产问题

javascript - ESLint - ReactJS 中没有未使用的表达式

javascript - 正则表达式前面部分的否定匹配

javascript - 将深度参数添加到console.log以进行递归

javascript - Charts.JS - 图表太多? - 加载问题