Heroku上的Rails Stylesheets

时间:2013-04-18 03:52:39

标签: ruby-on-rails heroku stylesheet

在我的本地计算机上,当我查看我的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运行了资产管道并创建了/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

2 个答案:

答案 0 :(得分:19)

迈克尔,我在你推到heroku之前尝试:

rake assets:precompile

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

此外,请确保config / environments / production.rb

中存在以下行
config.serve_static_assets = true

然后当然

git push heroku master

答案 1 :(得分:0)

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

您可以添加此宝石

  

gem'trail_12factor'

或专门添加此gem

  

rails_serve_static_assets

或手动更改config/environments/production.rb

中的配置
  

config.serve_static_assets = true