Tôi đang gặp phải một số vấn đề với nội dung trên sản xuất: thiếu nội dung, công cụ được biên dịch thành các tệp sai (javascript cho "/ admin" được biên dịch vào mã giao diện người dùng, v.v.). Hầu hết các tài sản đến từ động cơ. Tôi muốn gỡ lỗi và tối ưu hóa điều này.Thực hiện hành động đường ống nội dung như sản xuất khi phát triển
Để làm điều đó, tôi cần phải biên dịch trước, phân phát và thất bại trên môi trường phát triển giống như được thực hiện trên sản xuất.
Tôi đã thêm một số dòng để config/development.rb
tôi:
config.serve_static_assets = true
config.assets.precompile += %w(store/all.js store/all.css admin/all.js admin/all.css) # @TODO: clean up, and optimize.
config.assets.compile = false
Chạy này với rake RAILS_GROUPS=assets RAILS_ENV=development assets:precompile
mang lại cho tôi tất cả các tài sản và các manifest.yml
trong public/
.
Nhưng sau đó máy chủ thất bại:
Sprockets::Helpers::RailsHelper::AssetPaths::AssetNotPrecompiledError in Spree/home#index
Showing /xxxx/app/views/spree/shared/_head.html.erb where line #13 raised:
favicon.ico isn't precompiled
favicon.ico không biên dịch sẵn. Nhưng nó là! Ở đó, trong thư mục công cộng, trong manifest.yml
và tôi có thể tìm nạp nó bằng trình duyệt (hoặc wget): http://localhost:3000/assets/favicon.ico.
LƯU Ý Favicon đơn giản là nội dung đầu tiên được gọi. Nếu tôi loại bỏ favicon, vấn đề chỉ đơn giản là bề mặt với các tài sản tiếp theo, là "all.js", hoặc, khi đó là tước, "all.css", và như vậy. Tôi có thể loại bỏ nó cho đến khi "footer_bg.png", và sau đó nó sẽ thất bại ở đó. Một lần nữa: vấn đề không phải là favicon, nhưng thực tế là việc phát triển môi trường không thấy các tài sản biên dịch trước.
Cần thêm gì nữa để có được phát triển đường dẫn nội dung tương tự như sản xuất?
EDIT: Giải thích rõ ràng hơn rằng favicon không phải là vấn đề, chỉ là một triệu chứng.
Ngăn xếp môi trường sản xuất của bạn là gì? Máy chủ đơn/Multi-Server, Apache/Nginx, Heroku? Bạn đang triển khai sử dụng capistrano và sử dụng công thức capistrano? Bạn đang sử dụng config.serve_static_assets = true trong sản xuất? Bạn đã thử xử lý serve_static_assets thông qua apache/nginx thay vì trong Rails theo khuyến nghị của Rails chưa? – John
Ngăn xếp sản xuất của tôi khá là một Hành khách hộp đen. Nó là một v5 site5. Tôi không triển khai với capistrano, nhưng với lệnh git-push && post-commit (còn gọi là git-deploy). 'config.serve_static_assets = true' bị tắt. Tôi đã cố gắng phục vụ tài sản máng Apache, vâng. Nó giải quyết rất ít. Là vấn đề tôi cố gắng giải quyết ở đây, môi trường ** phát triển ** của tôi không phục vụ tài sản của tôi như sản xuất. – berkes