Tôi chỉ làm quen với Rails 3.1 và tôi đã đốt một số thời gian để cập nhật dự án cũ và cố gắng tìm ra cách đường dẫn nội dung mới hoạt động trong chế độ phát triển so với sản xuất.Làm thế nào để bạn bắt lỗi trong đường ống tài sản đường ray trước khi sản xuất?
Giá trị mặc định config.assets.precompile
thiết lập ban phước chỉ application.css và application.js, với ý định rằng tất cả mọi thứ nên được phục vụ như là một kiểu duy nhất và một tập tin javascript duy nhất.
Rõ ràng có những tình huống khi chúng ta không muốn điều đó, vì vậy chúng ta có thể thêm các mục vào danh sách trong đó biến cấu hình ...
Dưới đây là tình hình tôi chạy vào với dự án sandbox của tôi khi đưa vào sản phẩm:
- Đã duyệt trang web đang phát triển, thấy mọi thứ đang hoạt động. Các tài sản được liên kết dưới dạng các tệp riêng biệt và trang web được hiển thị chính xác.
- Đã tải trang web lên máy chủ của tôi và cố gắng làm cho trang web hoạt động trong sản xuất. Lỗi đầu tiên là nói rằng "ie.css" (biểu định kiểu có điều kiện) không được biên dịch trước. (Tôi đã ở Safari và biểu định kiểu này thậm chí sẽ không được tải xuống: lỗi được nêu ra từ trình trợ giúp
stylesheet_link_tag
trước khi hiển thị trang.) - Ran
rake assets:precompile
và thử lại. - Đã thêm mục vi phạm vào
config.assets.precompile
và thử lại. - Đã khắc phục lỗi xuống lề đường cho đến khi gặp lỗi nội dung khác.
- GOTO 3.
Không biết làm thế nào để giải quyết vấn đề này, tôi đã đi vòng vòng một vài lần cho đến khi tôi nghĩ rằng tôi có tất cả các tài sản và các trang web đã được render trong sản xuất. Sau đó, tôi đã thử nó trong MSIE và nhấn một lỗi khác 500: "belated_png_fix.js" đã được tải theo điều kiện và nó không được cắt lên cho đến lúc đó. Vì vậy, câu hỏi của tôi là, ngoài thử nghiệm và lỗi hoặc phụ thuộc nhiều vào thử nghiệm tích hợp, làm cách nào tôi có thể dự đoán rằng trang web của tôi sẽ không bị phát hiện khi đường dẫn nội dung phát hiện ra rằng một số biểu định kiểu hoặc javascript không được thêm vào vào danh sách biên dịch trước?
Tôi cũng tò mò tại sao nội dung bảng định kiểu bị thiếu nên khiến toàn bộ trang bị lỗi 500 thay vì chỉ biên dịch trang theo yêu cầu hoặc phân phát 404 khi nội dung đó được yêu cầu. Đây có phải là một thiết kế có chủ ý để "thất bại sớm" không?
Gần đây, tôi đã chuyển đổi một ứng dụng cũ sang đường dẫn nội dung và không có vấn đề gì. Phải mất một thời gian để tôi tìm ra cách mọi thứ hoạt động cùng nhau. Để trả lời câu hỏi của bạn, bạn có thể hiển thị nội dung của tệp css và js của mình, cụ thể là các câu lệnh yêu cầu không? Tôi cũng quan tâm đến cách bạn đang gọi chúng từ quan điểm. Cuối cùng là tất cả trong ứng dụng/tài sản hoặc bạn đang sử dụng lib/tài sản và nhà cung cấp/tài sản là tốt? –