【问题标题】:Rails 4 css BG assetsRails 4 css BG 资产
【发布时间】:2015-01-30 08:56:42
【问题描述】:

我有一个应用程序已启动到 heroku。在我的开发环境中,我的 CSS 背景加载正常。但是,我无法弄清楚为什么它没有加载到我的生产环境中。

body {
    font-family: "Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;
    background: url('letters.jpg') no-repeat center center fixed;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    background-size: cover;
    -o-background-size: cover;
}

我阅读了一篇关于添加到我的 application.rb 文件的 heroku 文章:

 config.assets.initialize_on_precompile = true

但是它说如果我有这个宝石,我不需要这样做:

     gem 'rails_12factor'

是我的语法错误还是需要在别处添加一些代码?

【问题讨论】:

  • heroku 有错误吗?您可以通过使用带有 Javascript 控制台的 Chrome 来查看任何错误。
  • 我检查了heroku日志,它说:ActionController::RoutingError (No route matches [GET] "/assets/letters.jpg"):
  • 确认 Rails 版本(3 或 4),您应该看到 heroku doc(devcenter.heroku.com/articles/rails-asset-pipeline)。也许你应该在本地 reke assets:precompilegit addgit push heroku master

标签: css ruby-on-rails heroku


【解决方案1】:

您可以使用url(asset-path('letter.jpg')) 代替url('letters.jpg')
要让它在heroku中工作,你必须在本地预编译你的资产并推送到heroku,运行$rake assets:precompile然后将生成的资产文件推送到heroku。

【讨论】:

  • 我试过 url(asset_path('letters.jpg')) 但这不会加载到我的生产或开发环境中。
  • @JoséToy 好的,试试这个url(asset-path('letters.jpg')),除此之外,您还必须运行$rake assets:precompile 并将公共文件夹中生成的资产文件提交并推送到heroku。
  • 我仍然收到 ActionController::RoutingError (No route matches [GET] "/assets/letters.jpg") 错误。似乎语法在我的引导 css 文件中也不起作用。不过,我的其他资产在我网站的其他地方都可以正常加载。
  • 文件应该是.scss,如果是.css,可能会导致问题,尝试更改文件扩展名。也不是"/assets/letters.jpg",生成的url应该包括一个长的MD5像这样"/assets/letters-675anh519346ce297bb09ddd96afb953.jpg"
  • 这行得通。但是(由于我缺乏 css 语法)我不得不删除“无重复中心中心固定;”并将视图链接调整到样式表。现在这很好,但仅供将来参考,如果我想保持代码的中心固定部分,你知道如何解决这个问题吗?感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多