ruby-on-rails - Rails 3.1 Assets - 开发中的奇怪服务

标签 ruby-on-rails asset-pipeline

我遇到了 Rails 3.1 Assets 管道问题。 Assets 在开发过程中包含两次:

<script src="/assets/main_new.js?body=1" type="text/javascript"></script>
<script src="/assets/pagenav.js?body=1" type="text/javascript"></script>
<script src="/assets/tours.controller.js?body=1" type="text/javascript"></script>
<script src="/assets/tours.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script>

Rails 以某种方式编译并包含 application.js,因此所有脚本都包含两次 - 作为单独的文件和 application.js

生产中的预编译资源一切正常。

开发.rb

 config.assets.compress = false
 config.assets.debug = true

生产.rb

# Disable Rails's static asset server (Apache or nginx will already do this)
config.serve_static_assets = false

# Compress both stylesheets and JavaScripts
config.assets.compress = true
config.assets.js_compressor  = :uglifier
config.assets.css_compressor = :scss

config.assets.compile = false
config.assets.digest = true

application.rb

config.assets.enabled = true

最佳答案

尝试将以下内容添加到development.rb:

config.serve_static_assets = false

...然后清除浏览器缓存(根据评论更新)

静态资源是指 public/assets 中的预编译资源,这是 rake assets:precompile 放置它们的地方。

发生的情况是,如果您为应用/ Assets 提供服务,则公共(public)/ Assets 中存在的任何内容都将覆盖应用/ Assets 中的任何内容。因此,当 js 标签打算识别 app/assets/application.js 时,就会加载 public/assets/application.js。

关于ruby-on-rails - Rails 3.1 Assets - 开发中的奇怪服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8356251/

相关文章:

ruby-on-rails - 为一个没有路由的操作编写一个失败的测试,即使 Assets 管道打开

ruby-on-rails - ruby rails : provide vs content_for

ruby-on-rails - 如何在查询中使用 mls 编号从 rets 中查找数据

ruby-on-rails - 将邮件附件保存为 Rails 中的 Active Storage 对象

ruby-on-rails-3 - 如何使用 Assets 管道在 Rails 3.2 中包含 css pie?

ruby-on-rails - Rails 4.2.0 - Errno::EACCES(权限被拒绝@dir_s_mkdir -/files)

ruby-on-rails - Rails 预编译index.html.erb

jquery - 带有 jquery $.ajax 的 Rails

mysql - 通过 Rails 调用存储过程?

ruby-on-rails - Rails 4.2.0.rc1 升级 <module:InheritedResources>': 未初始化的常量 ActionController::Responder (NameError)