2012-02-01 16 views
8

Khi tôi tải thin như vậy:Chạy máy chủ mỏng trong phương thức sản xuất không được tải tài sản của tôi

thin start -e production 

và cố gắng truy cập vào một trong các trang của tôi, tôi có được điều này trong dữ liệu ghi nhận:

cache: [GET /] miss 
cache: [GET /assets/main-bd1ef4b153740fb69fd615304b87ad0d.css] miss 
cache: [GET /assets/jqModal-8fa734bf4f58524b2799abd73ab7d34f.css] miss 
cache: [GET /assets/jquery-544665ba1d5b4f793290421aafed85c9.js] miss 
cache: [GET /assets/application-00b97aa2429046c0c43802f07b756b46.js] miss 

Các tệp này tồn tại trong thư mục assets của tôi dưới public.

tôi đã chạy lệnh này cũng:

RALS_ENV=production rake assets:precompile 

Tôi đã cố gắng chỉ truy cập vào các tập tin /public/assets/application.js trong trình duyệt như thế này:

http://localhost:3000/application.js 

nào mang lại cho tôi một lỗi 404 (mặc dù tệp tồn tại trong /public/assets nhưng tệp có thể được đọc khi tôi thực hiện yêu cầu đối với tệp khi máy chủ đang ở chế độ phát triển.

+0

Vấn đề chính xác là gì - có thiếu bộ nhớ cache? (có thể được mong đợi vào lần đầu tiên bạn yêu cầu tệp), hoặc là các tệp đó không thể truy cập được? Chúng _should_ có sẵn tại http: // localhost: 3000/assets/application.js, v.v. – Elad

Trả lời

13

Rails phục vụ các tập tin tĩnh được tắt trong sản xuất (config/environments/production.rb) theo mặc định:

# Disable Rails's static asset server (Apache or nginx will already do this) 
config.serve_static_assets = false 

Máy chủ Thin không được cấu hình để phục vụ tài sản tĩnh, và vì vậy yêu cầu đối với tài sản của bạn đang thất bại.

+0

Đây giống như bản sửa lỗi tôi cần. Tôi sẽ đánh dấu đây là câu trả lời khi tôi triển khai cho Heroku và biết chắc chắn. – DJTripleThreat

+0

Bạn có nên sử dụng Thin làm máy chủ không? Các công ty lưu trữ thông báo rằng và họ đã thực hiện một proxy đối với mỏng. Nó hoạt động, nhưng nó có thể không nhanh như tôi đọc ở đâu đó. Và Ryan, anh là anh chàng của Spree? :-) –

+0

Tôi sẽ không sử dụng Thin trong sản xuất. Tôi sẽ sử dụng Unicorn hoặc Puma. Vâng, tôi là anh chàng Ryan người trước đây từ Spree, nhưng bây giờ tôi làm việc cho LIFX. –