Tôi đang chạy ứng dụng 3.1 trên ngăn xếp Heroku Cedar hỗ trợ đường dẫn nội dung. Heroku lists 3 ways để biên dịch nội dungỨng dụng đường ray Heroku 3.1 - biên dịch nội dung cục bộ so với biên dịch nội dung trong quá trình biên dịch sên
- Biên soạn nội dung cục bộ.
- Biên dịch nội dung trong quá trình biên dịch sên.
- Biên dịch nội dung trong thời gian chạy.
Rõ ràng # 3 là xấu cho hiệu suất và tài liệu Heroku cũng khuyên bạn nên chống lại nó. Nhưng tôi không chắc cái nào tốt hơn giữa # 1 và # 2.
# 1 yêu cầu bạn chạy rake assets:precompile
và bao gồm thư mục public/assets
trong git. Slug của bạn sẽ lớn hơn nhưng tôi cho rằng thời gian chết để triển khai một trang web sẽ thấp hơn. Nhưng kích thước slug lớn hơn có nghĩa là khởi động ứng dụng chậm hơn vì vậy có thể đó là một rửa.
# 2 sẽ mất nhiều thời gian hơn để triển khai các bản cập nhật do biên dịch trước được thực hiện ở phía Heroku. Tuy nhiên, bạn sẽ có một con sên nhỏ hơn và ít có khả năng quản lý/ghi nhớ hơn.
Câu hỏi của tôi là - tùy chọn nào (# 1 hoặC# 2) là lựa chọn tốt nhất cho sản xuất và tại sao?
Cho đến nay, nó trông giống như tùy chọn # 2 nhưng tôi muốn đảm bảo rằng tôi không nhìn thấy gì đó.
http://devcenter.heroku.com/articles/cdn-asset-host-rails31 cũng là một lựa chọn tốt - mặc dù nó đồng bộ tài sản với S3 từ ứng dụng của bạn trên Heroku để chúng vẫn hiện diện trong sên của bạn không được phục vụ từ Heroku. –
cũng đôi khi # 2 không phải lúc nào cũng là một lựa chọn. Heroku sẽ luôn luôn cố gắng biên dịch chúng trong quá trình biên dịch slug đầu tiên và nếu sau đó thất bại sau đó trong thời gian chạy. –