2013-04-18 28 views
11

Trên máy cục bộ, khi tôi xem Rails App, bảng định kiểu được liên kết thành công tại /assets/stylesheets/ nhưng trên Heroku, nó được đổi thành /stylesheets/ có lẽ trong thư mục public và không hoạt động! Làm thế nào để tôi nhận được bảng định kiểu để di chuyển đến public/stylesheets khi biên dịch?Rails Stylesheets trên Heroku

EDIT:

thư mục tập tin sau khi 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 

Dưới đây là liên kết của tôi stylesheet trong application.html.haml:

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

gem flatui-rails là trong Gemfile tôi và *= require flat-ui là trong tập tin application.css của tôi .

EDIT 2:

dọn dẹp thư mục public/assets của tôi, thêm public/assets/*-.gitignore của tôi và đẩy lên repo Heroku tôi. Trong quá trình biên soạn slug Heroku chạy pipline tài sản và thực hiện /assets/application-b2c82b0573602f3a368a26f36b99542b.css cũng được liên kết trong mã nguồn của trang web của tôi, nhưng phong cách không tải và tôi nhận được The page you were looking for doesn't exist. khi tôi cố điều hướng đến bảng định kiểu ...

Dưới đây là tôi application.html.haml:

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

Trả lời

19

Michael, tôi trước khi bạn push to Heroku thử:

rake assets:precompile

này sẽ precompile chúng trong thư mục công cộng để họ có thể được phục vụ cho Heroku . Hãy cho tôi biết nếu điều đó không hiệu quả.

Ngoài ra, hãy chắc chắn dòng sau tồn tại trong config/môi trường/production.rb

config.serve_static_assets = true 

Sau đó, tất nhiên

git push heroku master

+0

Cảm ơn, tôi cảm thấy đây là một bước đi đúng hướng, nhưng nó vẫn không hoạt động. Tôi đã thêm chi tiết về cấu hình của tôi trong bài đăng gốc. Tôi nghi ngờ tôi đã làm điều gì sai trong liên kết kiểu ứng dụng 'application.html.haml' của tôi –

+0

Sau khi thay đổi' stylesheet_link_tag 'flat-ui "," home.min ", media:" all "' thành 'stylesheet_link_tag" Heroku gần như liên kết với một bản định kiểu hợp lệ, nhưng nó đã cho '/ assets/application-4cd3d6fa233d3d69d4eb5f32c3ca36b5.css' như một liên kết mà không có tài sản biên dịch trước nào trong thư mục của tôi –

+1

Bạn có thể đăng bài của mình không application.html.haml? Cũng chạy 'nhật ký heroku' và đăng kết quả đó. –

0

Thay vì kiểm tra tài sản biên dịch vào Git, đầu tiên đọc này: https://devcenter.heroku.com/articles/ruby-support#plugin-injection-in-rails-4

Bạn có thể thêm đá quý này

đá quý 'rails_12factor'

hoặc thêm đá quý này đặc biệt

rails_serve_static_assets

hoặc tự thay đổi cấu hình trong config/environments/production.rb

config.serve_static_assets = true

+2

Ai đó đã tạo ra một viên ngọc để thay đổi * một biến cấu hình? * Có điều gì đó tôi không đang mất tích ở đây? – Zaz

+0

Rails: Khung chương trình dành cho những người không thích lập trình. – Chloe