在我的本地计算机上,当我查看我的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
答案 0 :(得分:19)
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