Tôi thích không phải để ghép các tệp JavaScript ở chế độ phát triển, nhưng phân phối chúng dưới dạng tệp riêng lẻ. Vì vậy, tôi cấu hình:Làm thế nào để tránh các tài sản biên dịch trước được phục vụ trong chế độ phát triển?
development.rb:
config.assets.compress = false
config.assets.debug = true
config.assets.compile = true
Trong tôi/app/tài sản/javascript thư mục tôi có:
- reviews.js
- đánh giá/
- foo.js
- bar.js
reviews.js:
//= require jquery
//= require jquery_ujs
//= require_tree ./reviews
tôi bao gồm JavaScript sử dụng <%= javascript_include_tag "reviews" %>
trong cách bố trí của tôi. Trang được tạo sẽ tham chiếu chính xác ba tập lệnh riêng lẻ và reviews.js
về cơ bản là trống. Càng xa càng tốt.
Bây giờ khi tôi biên dịch trước tài sản của mình cho sản xuất bằng cách sử dụng rake assets:precompile
ba tệp JavaScript được nối vào reviews.js
. Điều này là tất cả tốt cho sản xuất nhưng bây giờ, trong chế độ phát triển, ghép nối reviews.js
được phục vụ ngoài vào hai tệp riêng lẻ.
Tất nhiên, điều này dẫn đến tất cả các loại lỗi khó chịu khi phát triển bởi vì bây giờ, nội dung của foo.js
và bar.js
được phân phát hai lần, một trong số đó có phiên bản cũ hơn có thể ở reviews.js
.
Làm cách nào để đảm bảo Rails không sử dụng các tài sản biên dịch sẵn trong chế độ phát triển?
Cám ơn những lời khuyên, tôi đã xóa các tập tin biên soạn tại địa phương và cấu hình để có họ biên soạn trên git push to Heroku. –
Đó là câu trả lời tôi cần. Đúng là tôi không cần những tài sản biên dịch trước đó trong khi tôi đang phát triển, nhưng khi tôi đang học cách cấu hình đường dẫn nội dung, tôi thực sự cần chúng để kiểm tra chế độ sản xuất của mình, thay vì chờ sự ngạc nhiên trên Heroku! Bây giờ tôi sẽ thay đổi tên thư mục (hoặc đặt chúng vào một nhánh git), nhưng nó vẫn là một điều đáng tiếc, đó là một điều nữa tôi cần suy nghĩ, thay vì một tùy chọn cấu hình trong env phát triển để nói "bỏ qua công chúng/tài sản thư mục "mà tôi đã hy vọng. – Phantomwhale
Bạn có thể không quên xóa bộ nhớ cache của trình duyệt để trình duyệt không sử dụng ứng dụng mà bạn vô tình tải trước khi bạn rm -rf'd public/asset –