【问题标题】:Rails Stylesheets on HerokuHeroku 上的 Rails 样式表
【发布时间】:2013-04-18 03:52:38
【问题描述】:

在我的本地机器上,当我查看我的 Rails 应用程序时,我的样式表已成功链接到 /assets/stylesheets/,但在 Heroku 上,它更改为 /stylesheets/ 大概在 public 目录中并且不起作用!如何让我的样式表在编译时移动到 public/stylesheets

编辑:

rake assets:precompile之后的文件目录

app
  assets
    stylesheets
      application.css
      application.min.css
      home.css
      home.css.scss
      home.min.css
      scaffolds.css
      scaffolds.css.scss
      scaffolds.min.css
      startups.css
      startups.css.scss
public
  assets
    application-3701cb84bbc3c20d5a7ec1aac608fbdb.js
    application-3701cb84bbc3c20d5a7ec1aac608fbdb.js.gz
    application-f7ff7ad51f3528ccca1b5c7f2d5b5915.css
    application-f7ff7ad51f3528ccca1b5c7f2d5b5915.css.gz
    manifest-ad3babc6c84cc0b38f1a98eb594b8235.json
    rails-afd7b40a0142ed24738b640e78388de4.png

这是我在application.html.haml 中的样式表链接:

stylesheet_link_tag "flat-ui", "home.min", media: "all"

gem flatui-rails 在我的 Gemfile 中,*= require flat-ui 在我的 application.css 文件中。

编辑 2:

清除我的public/assets 文件夹,将public/assets/* 添加到我的.gitignore 并推送到我的Heroku 存储库。在 slug 编译期间,Heroku 运行资产 pipline 并制作了 /assets/application-b2c82b0573602f3a368a26f36b99542b.css,它也链接到了我网站的源代码中,但是样式没有加载,当我尝试导航到样式表时,我得到了 The page you were looking for doesn't exist....现在呢?

这是我的application.html.haml

!!! 5
%html
  %head
    %title StartupCrawler
    = stylesheet_link_tag "application", media: "all"
    = csrf_meta_tags
  = yield

【问题讨论】:

    标签: ruby-on-rails heroku stylesheet


    【解决方案1】:

    Michael,在你推送到 heroku 之前,我先试试:

    rake assets:precompile

    这将在公共文件夹中预编译它们,以便将它们提供给 Heroku。如果这不起作用,请告诉我。

    另外,请确保 config/environments/production.rb 中存在以下行

    config.serve_static_assets = true
    

    那当然

    git push heroku master

    【讨论】:

    • 谢谢,我觉得这是朝着正确方向迈出的一步,但仍然无法正常工作。我在原始帖子中添加了有关我的配置的详细信息。我怀疑我在application.html.haml 样式链接中做错了什么
    • 在将我的 stylesheet_link_tag "flat-ui", "home.min", media: "all" 更改为 stylesheet_link_tag "application", media: "all" 之后,Heroku 几乎链接到了一个有效的样式表,但它提供了 /assets/application-4cd3d6fa233d3d69d4eb5f32c3ca36b5.css 作为链接,这不是我在我的文件夹中拥有的预编译资产跨度>
    • 您可以发布您的 application.html.haml 吗?同时运行heroku logs 并发布该输出。
    • 添加了我的application.html.haml 和更新。感谢您的帮助!
    • 想通了...必须在config/production.rb中更改config.serve_static_assets = true
    【解决方案2】:

    不要将已编译的资产签入 Git,而是先阅读以下内容:https://devcenter.heroku.com/articles/ruby-support#plugin-injection-in-rails-4

    您可以添加此宝石

    gem 'rails_12factor'

    或专门添加此宝石

    rails_serve_static_assets

    或手动更改config/environments/production.rb中的配置

    config.serve_static_assets = true

    【讨论】:

    • 有人制作了一个 gem 只是为了更改 一个配置变量?我在这里缺少什么吗?
    • Rails:适合不喜欢编程的人的编程框架。
    猜你喜欢
    • 1970-01-01
    • 2020-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-29
    • 2014-05-19
    • 2015-10-22
    • 1970-01-01
    相关资源
    最近更新 更多