2012-07-11 27 views
13

Tôi có một vài trang tĩnh khi chạy cục bộ làm việc như localhost: 3000/foo.html, nhưng điều này không hoạt động sau khi tải lên heroku.chạy ứng dụng đường ray trên heroku, không thể xem các trang tĩnh trong/public folder

tôi đã cố gắng thêm dòng sau vào tập tin routes.rb:

match '/foo', :to => redirect('/public/foo.html') 

nhưng điều đó dường như không làm việc, nó chuyển hướng tôi đến foobar.com/public/foo.html, nhưng vẫn thấy không có gì đó.

+1

Bạn có 'config.serve_static_assets = true' trong cấu hình môi trường sản xuất không? –

+0

Tôi có thiết lập này thành true – cbass

+0

Bằng cách nào đó các tệp tĩnh không bao giờ làm cho nó ở phía bên Heroku, xấu của tôi. – cbass

Trả lời

38

mỗi this article, bạn sẽ cần phải nói với Rails để phục vụ tài sản tĩnh bản thân với:

config.serve_static_assets = true 

trong bạn config/environments/production.rb

+0

Tôi vô tình bỏ phiếu bình chọn này, và nó sẽ không cho phép tôi thay đổi phiếu bầu, nhưng nó là chính xác, cảm ơn –

+0

Ngoài ra hãy chắc chắn rằng bạn chưa bao gồm thư mục công khai của bạn trong .gitignore. Nếu bạn muốn chỉ bao gồm một số tệp nhất định, bạn có thể bỏ qua thư mục công khai và loại trừ các tệp bạn muốn bỏ qua. Giống như: /công khai/* ! /public/404.html – rpbaltazar

0

Hoặc bạn có thể thêm các rails_12factor đá quý vào nhóm sản xuất:

gem 'rails_12factor', group: :production 

theo Heroku. Điều này cũng sẽ chuyển hướng đăng nhập đến stdout cũng như yêu cầu của Heroku.

0

Điều này khiến tôi khó chịu hàng giờ, nhưng đây là một giải pháp tiềm năng khác. Vì một lý do nào đó, tôi có thể tạo tài liệu vào /public/docs, nhưng tài liệu sẽ không tải, ngay cả sau khi tôi tạo tài liệu. Tôi sẽ chạy một bảng điều khiển bash Heroku, tạo tài liệu, thoát, sau đó chạy lại Heroku bash chỉ để thấy rằng /public không còn chứa thư mục docs của tôi nữa.

Vì vậy, giải pháp duy nhất tôi tìm thấy là đưa tài liệu vào kho lưu trữ Git. Đó là cách duy nhất mà Heroku tiếp tục tồn tại /public/docs trên các trường hợp triển khai và bash.

Tôi không biết tại sao đây là ... Tôi đã mở một vé hỗ trợ với Heroku và đang chờ phản hồi.

+0

bạn có thể vui lòng đăng phản hồi mà bạn nhận được từ nhóm hỗ trợ heroku không? có thể giúp đỡ người khác. –

Các vấn đề liên quan