在生产环境中禁用资产捆绑,Rails 3.1?

7

我有一个现有的Rails应用程序,我正在从Rails 3.0升级到Rails 3.1。在开发过程中一切都进行得很顺利,但是当我转移到生产环境时,我的样式表会出现问题,显然是由于资源编译引起的。

在我解决样式表冲突之前,我希望禁用生产环境中的资源编译,但我尝试的配置开关似乎没有生效。

production.rb

# Don't fallback to assets pipeline
config.assets.compile = false

# Do not compress assets
config.assets.compress = false

# Generate digests for assets URLs
config.assets.digest = false

在重新启动 Passenger 后,只有 application.css 样式表被服务,其中包含了内联内容。在开发环境中我有:

development.rb

# Do not compress assets
config.assets.compress = false

# Expands the lines which load the assets
config.assets.debug = true

这导致加载多个样式表,不仅包括application.css,而且还有应用中的工作样式。

application.rb

=stylesheet_link_tag 'application'
=javascript_include_tag 'application'

application.css

*= require flutie
*= require_self
*= require jquery-ui-1.8.14.custom.css
*= require demo_table

所有资源都在app/assets中设置

1个回答

6
在你的application.rb文件中,你需要禁用它。如果你希望在生产环境中仅保持这种状态,请在你的application.rb文件中将其设置为true,并在你的production.rb文件中添加config.assets.enabled = false。
# Enable the asset pipeline
config.assets.enabled = false

哦,谢谢Nick。我在application.rb中将config.assets_enabled设置为false,在production.rb中设置为true,现在我的样式表和js都完全崩溃了。它说找不到application.js和application.css。 - Allyl Isocyanate
你可以尝试更改以下代码行: config.assets.compile = false 为 true。这将在任何样式表或JavaScript被忽略时编译它们。 - Nick
已经设置为 false。# 不要回退到资产管道 config.assets.compile = false

不压缩资产

config.assets.compress = false

生成资产 URL 的摘要

config.assets.digest = false

启用资产管道

config.assets.enabled = false
- Allyl Isocyanate
这也没解决问题。问题在于它仍然将所有内容打包成application.css,这会导致CSS失效。嗯,无论如何,还是谢谢你的帮助,尼克。我暂时放弃,只能修复CSS了。 - Allyl Isocyanate
你应该将app/assets文件夹中的所有资产移动到public目录中,并在布局中手动包含它们。 - Maxsy
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接