2012-07-22 28 views
13

Mỗi lần tôi triển khai dự án 3.2 Rails của tôi để Heroku, rake assets:precompile được điều hành:Có thể bỏ qua bước biên dịch trước tài sản cho một cú git duy nhất trên Heroku không?

$ git push heroku master 
... 
----> Preparing app for Rails asset pipeline 
     Running: rake assets:precompile 
     Asset precompilation completed (189.17s) 
... 

Đôi khi tôi muốn thực hiện một push mà tôi biết không thay đổi bất kỳ tài sản, chẳng hạn như một hotfix nhanh chóng để một bộ điều khiển. Có thể bỏ qua tài sản: bước biên dịch trước cho một cú git đẩy vào Heroku không?

Cảm ơn.

Trả lời

14

Chắc chắn! Bạn sẽ cần phải tạo một manifest.yml trong thư mục your_app/pubilc/assets.

Tệp có thể để trống. Nhưng lý tưởng nhất là bạn biên dịch trước mọi thứ cục bộ, do đó triển khai với Heroku sẽ nhanh hơn nhiều.

Đảm bảo rằng bạn cũng đã cam kết tệp manifest.yml khi bạn đang đẩy vào Heroku. Một cái gì đó như git add -f your_app/pubilc/assets/manifest.ymlgit push heroku master là đủ.

+0

Nếu tôi vẫn muốn tài sản biên dịch trên Heroku nhiều lần, giải pháp này có nghĩa là tôi sẽ phải thực hiện một lần kiểm tra tệp manifest.yml, đẩy tới heroku, sau đó chắc chắn xóa tệp đó. Đúng? Có cách nào không liên quan đến bước bổ sung này không? – Eli

+2

Nếu bạn nhìn kỹ khi bạn đang triển khai đến Heroku, sẽ có một dòng có nội dung là 'manifest.yml được phát hiện. Giả sử nội dung được biên dịch cục bộ'. Vì vậy, về cơ bản tệp kê khai là một tín hiệu để nói với Heroku không thực hiện việc biên dịch tài sản. Tôi nghĩ rằng bạn luôn có thể chạy thủ công các tài sản 'heroku run rake: precompile' trên bảng điều khiển của bạn. –

+5

Chạy 'tài sản chạy băm heroku: tiền biên dịch từ bảng điều khiển của bạn sẽ ** không ** biên dịch tài sản cho doku của bạn đang chạy Heroku. Mỗi quá trình chạy trên Heroku được chạy trong các môi trường ảo khác nhau. –

4

Điều này phù hợp với tôi. manifest.yml không làm gì cho tôi trong dự án rails 4 của tôi.

https://gist.github.com/Geesu/d0b58488cfae51f361c6

+0

Cảm ơn! Điều này cũng làm việc cho tôi trên Rails 4 –

+0

nhưng điều này không làm cho nó không thể bao giờ biên dịch trước? –

0

Trong ray 4, tạo ra các tập tin manifest-<md5 hash>.json thay vì manifest.yml

0

Chỉ cần tiền biên dịch tại địa phương với rake assets: precompile, kiểm tra trong tài sản dẫn đến có trong public/assets, và push to Heroku.

Điều này sẽ tự động tạo tệp kê khai-.yml hoặc json trong thư mục public/assets của bạn; sau đó heroku sẽ phát hiện và báo cáo Detected manifest file, assuming assets were compiled locally.

Lưu ý 1: Một số người có một đường dây trong development.rb mà làm cho những điều này đi đến public/dev-assets instead; nếu có, bạn cần đổi tên dev-assets thành chỉ assets)

Lưu ý 2: Đảm bảo tệp .gitignore của bạn không loại trừ thư mục public/assets.

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