在生产中在Rails 3.2中加载css文件的正确方法

时间:2014-08-15 23:52:29

标签: jquery css ruby-on-rails-3 datepicker jquery-ui-datepicker

在我们的rails 3.2 app中,jquery-ui.css文件保存在app / assets / stylesheets /下,用于datepicker主题。在应用程序视图中,css文件被称为:

<link href="jquery-ui.css" rel="stylesheet" type="text/css"/ >

在applicaion.css.scss中,做了:

@import "jquery-ui.css";

在测试环境中,css被正确引用,并且有一个带有datepicker的主题。但是在生产环境中,没有。我们在生产中进行了资产预编译(使用子uri)。我们在设置中遗漏了什么吗?非常感谢。

更新: 配置/环境/ production.rb

config.cache_classes = true

  # Full error reports are disabled and caching is turned on
  config.consider_all_requests_local       = false
  config.action_controller.perform_caching = true

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

  # Compress JavaScripts and CSS
  config.assets.compress = true

  # Don't fallback to assets pipeline if a precompiled asset is missed
  config.assets.compile = false

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

  # Defaults to nil and saved in location specified by config.assets.prefix
  # config.assets.manifest = YOUR_PATH

  # the I18n.default_locale when a translation can not be found)
  config.i18n.fallbacks = true

  # Send deprecation notices to registered listeners
  config.active_support.deprecation = :notify

2 个答案:

答案 0 :(得分:2)

我强烈建议您隐藏供应商/资产库中的任何第三方库。有关此内容的详细信息,请参阅http://guides.rubyonrails.org/asset_pipeline.html#precompiling-assets

将你的jquery-ui.css移动到vendor / assets / stylesheets并为你的供应商清单尝试这个而不是@import

/*
//= jquery-ui
*/

答案 1 :(得分:1)

对于sass版本https://github.com/sass/sass/issues/193,可能会出现一些@import问题。

"jquery-ui.css"重命名为"_jquery-ui.scss"并将其导入为部分@import "jquery-ui";

使用application.css.scss文件@import "relative/path/jquery-ui"

中的相对路径