【问题标题】:Dokku deployed Rails site does not rewrite SCSS imagesDokku 部署的 Rails 站点不会重写 SCSS 图像
【发布时间】:2015-11-20 16:59:38
【问题描述】:

我正在使用 Dokku 部署一个 RoR 站点,使用 Herokuish Ruby buildpack

我部署时没有错误:(虽然时间看起来确实很短)

-----> Preparing app for Rails asset pipeline
       Running: rake assets:precompile
       Asset precompilation completed (3.58s)
       Cleaning assets

资产文件名被正确识别,视图中使用的图像已按预期重写其路径。

然而,尽管我在 SCSS 中使用了background-image: url(image_path('parallax/masthead.jpg'));,但 URL 并没有被重写。

这是我的 config/production.rb 中的相关行

config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present?
config.assets.js_compressor = :uglifier
config.assets.compile = false
config.assets.digest = true

在我的 Gemfile 中,我有:

group :production do
  gem 'puma', '~> 2.15.3'
  gem 'rails_12factor'
end

我尝试在本地运行 rake assets:precompile RAILS_ENV=production 并且它工作正常,视图和 CSS 都被正确重写。

【问题讨论】:

    标签: ruby-on-rails dokku buildpack


    【解决方案1】:

    尝试将background-image: url(image_path('parallax/masthead.jpg'));改写为

    background-image: image-url('parallax/masthead.jpg');
    

    【讨论】:

    • 哇哦,这确实有效!真正奇怪的是,我只是更改了第一个(如上所述)来测试它,但是在我这样做之后,其余的就开始工作了——所以现在我真的不明白我做错了什么......
    • 嗯...这很奇怪,但在他们说要使用的原始文档中:image-url 和其他一些选项,您可以查看 2.3.2 CSS 和 Sass 部分在这个链接上guides.rubyonrails.org/…
    【解决方案2】:

    啊,我找到了 - 在我拥有的 SCSS 文件中:

    background: url(image_path('layout/opacity.png')) repeat; 
    

    由于某种原因导致它失败。将其更改为:

    background-image: url(image_path('layout/opacity.png'));
    background-repeat: repeat;
    

    对其进行排序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-16
      • 1970-01-01
      相关资源
      最近更新 更多