【问题标题】:Rails 3.1 asset helpers generate old css and javascript pathsRails 3.1 资产助手生成旧的 css 和 javascript 路径
【发布时间】:2011-12-06 09:23:31
【问题描述】:

我不知道是什么导致了这个问题。非常感谢任何想法或建议。

我正在迁移到 Rails 3.1,并且在开发中一切正常。但是测试生产部署我根本没有得到任何资产......而不是通常的原因:)

最好在我的布局中显示主要的 javascript 包含行。

这行haml:

= javascript_include_tag 'application'

在开发中我得到:

<script src="/assets/application.js" type="text/javascript"></script>

在生产中,同一行如下所示:

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

在生产中,包含助手的行为仍然像我在 3.0 上一样。资产编译得很好。它们位于 public/assets 文件夹中(就像清单一样),如果我将浏览器指向正确的 url,nginx 就可以很好地为它们服务。

我在服务器上使用 bundle exec rails -v 检查了我的 Rails 版本。我找回了 3.1.3 版本。此外,服务器上的资产编译按预期工作的事实应该表明事情设置“通常没问题”。我的生产环境包含以下资产相关行:

config.serve_static_assets = false
config.assets.compress = true
config.assets.compile = false
config.assets.digest = true
config.assets.precompile << /(^[^_]|\/[^_])[^\/]*/ # from https://gist.github.com/1184843

我猜一些 Gem 可能会覆盖助手,但只在生产中这样做?

重复:任何向正确方向轻推都会很棒。提前致谢。

【问题讨论】:

  • 您确定您的生产环境使用的是正确的 Rails 版本吗?在不知道您的设置的情况下,很难提供帮助。你是用乘客运行 nginx 还是 apache?如果是,你升级了吗?
  • 在上面添加了一些关于 Rails 版本等的更多信息。
  • 但我忘了提到资产是使用 rails guides 网站上的配置 sn-p 从 nginx 提供的。如果我将浏览器指向它们,它们确实可以正常使用。
  • 在生产环境中检查 app/views/layouts/application_layout.html.erb 文件,是否与您的最新版本相同?
  • 检查了布局。看起来不错。

标签: ruby-on-rails helper asset-pipeline


【解决方案1】:

知道了。

问题 1:我偶尔会被 Runit 咬。今天就是这样的一天。 config/application.rb 引用旧指南针修复时出现问题。当尝试“hup”到新应用时,Runit 保持旧应用运行。

注意事项:如有疑问,请始终运行 rails c production

在此之后,资产路径不再是 3.0 风格,而是几乎。他们现在是 /stylesheets/application.css 和类似的......更不用说资产目录了。

问题 2:在 application.rb 中需要链轮(如果不需要 rails/all)。为什么一切都在开发中和在生产中编译时起作用,我不能说。但是添加一条线来要求 sprockets railtie 为我解决了这个问题。我从来没有想过可能缺少一个需求,因为只有路径是错误的,其他一切都很好。大胆猜测:开发中的本地资产服务器可能需要 sprocket 来掩盖主应用程序缺少它。

感谢您抽出宝贵时间。很抱歉给你浪费了。

【讨论】:

  • 一个提示:检查配置文件中的设置是否与资产管道指南最后一部分中的设置相匹配。
  • 问题是 application.rb 中缺少这个:require "sprockets/railtie"
  • 我知道这已经有两年多了,但您有没有发现为什么需要明确包含它?我遇到了同样的问题,效果很好。无论如何,谢谢。
  • 不,我们的应用仍然需要 sprockets/railtie :)
猜你喜欢
  • 1970-01-01
  • 2012-06-02
  • 2014-03-02
  • 2011-11-13
  • 2023-03-10
  • 2011-09-03
  • 1970-01-01
  • 2012-02-04
  • 2011-12-31
相关资源
最近更新 更多