Tôi đang xây dựng một VPS, và nó được triển khai thông qua Capistrano, cơ sở dữ liệu kết nối vv, nhưng không có tài sản có sẵn cho trang - đó là html cơ bản duy nhất.Rails tài sản bị thiếu sau khi Capistrano triển khai
Nội dung có vẻ được biên soạn và tồn tại trong được chia sẻ thư mục.
Từ html page:
<link href="/assets/application-a1b5d69aeaff709fd3dce163c559b38b.css" media="all" rel="stylesheet" type="text/css" />
<script src="/assets/application-0ebd07089629f8c6880dddfb688d525d.js" type="text/javascript"></script>
Tài sản file xuất hiện để tồn tại trong chia sẻ thư mục:
[email protected]:~/apps/assay/shared/assets$ ls application- a1b5d69aeaff709fd3dce163c559b38b.css
application-a1b5d69aeaff709fd3dce163c559b38b.css
Khi tôi xem, nguồn và sau đó nhấp vào liên kết để đường dẫn tài sản, tôi nhận được 404 không tìm thấy từ Nginx.
SOLUTION
Nhờ Martin M (Câu trả lời được chấp nhận) để được giúp đỡ. Các bước tôi đã thực hiện, từ thư mục ~/apps/(tên ứng dụng)/hiện tại trên máy chủ.
$ bundle install
$ RAILS_ENV=production bundle exec rake assets:precompile
$ sudo service nginx restart
Rõ ràng sẽ tốt hơn nếu đưa vào công thức Capistrano.
* EDIT - Capfile *
load 'deploy'
load 'deploy/assets'
load 'config/deploy'
Cám ơn câu trả lời của bạn. Nên biên dịch trước được chạy trên máy phát triển hoặc máy chủ sản xuất? Có cách nào để bao gồm điều này trong việc triển khai Cap? – ardochhigh
cách "chuẩn" là kích hoạt dòng 'tải 'triển khai/asset'' trong' Capfile'. Nó chạy 'precompile' trên máy chủ trên mọi triển khai. –
Tôi có điều đó. Tôi đã thêm capfile của mình ở trên. – ardochhigh