Để gỡ lỗi javascript trong môi trường sản xuất heroku của tôi, tôi cần phải tắt nén nội dung (hoặc ít nhất là nén javascript). Tôi đã thử config.assets.compress = false
cùng với config.assets.debug = true
và tài sản đã nén vẫn được sử dụng. Sau đó tôi đã xóa tài sản đã nén, tại thời điểm đó, không có nội dung nào được hiển thị. Tôi đã thêm config.assets.enabled = false
, điều này không giúp ích gì. Tôi đã thử sao chép các tài sản chưa nén vào các thư mục khác nhau, bao gồm gốc ứng dụng, công khai và tài sản/công cộng (sau này sử dụng cả hai thư mục "hình ảnh", "javascripts" và "stylesheets" và đặt trực tiếp nội dung vào thư mục Tôi đã cuối cùng có thể nhận được các javascripts để làm việc bằng cách thay đổi html để tham khảo trực tiếp tất cả các tập tin javascript.Nhưng CSS và hình ảnh vẫn không hoạt động. nên đã làm việc.Bất cứ ý tưởng những gì tôi đã làm sai?Vô hiệu hóa giảm thiểu tài sản trong sản xuất đường ray
Trả lời
tôi đã đưa ra cách giải quyết này sau khi đọc the docs:
tạo ra một mô-đun mà không làm gì để nén js/css ở đây: lib/modules/no_compression.rb
class NoCompression
def compress(string)
# do nothing
string
end
end
cấu hình tài sản của bạn để (không) được nén với bạn máy nén do-nothing
config.assets.compress = true
config.assets.js_compressor = NoCompression.new
config.assets.css_compressor = NoCompression.new
Rất thông minh! Tôi chưa bao giờ nghĩ về điều đó. Cảm ơn! –
Điều tuyệt vời để sử dụng khi triển khai để dàn dựng máy chủ. Tiết kiệm cho tôi 100 giây từ tổng số 260 mỗi lần tôi triển khai trên heroku. – hakunin
Điều này vẫn sẽ thêm băm vào tên tệp nội dung?Tôi đang phải gỡ lỗi một số mã trên một máy chủ, nhưng để tìm lỗi tôi cần phải sử dụng tên tài sản băm chính xác. – Ziggy
Có vẻ như đây có thể là lỗi trong Rails.Thay đổi cho đường ray sắp tới 3.2.9, đây có phải là điều bạn đang chạy không?
Tôn trọng config.digest = false cho asset_path
Trước đây, internals asset_path chỉ tôn trọng: tiêu hóa tùy chọn, nhưng bỏ qua các thiết lập cấu hình toàn cầu. Điều này có nghĩa rằng config.digest = false không thể được sử dụng kết hợp với config.compile = false điều này sửa chữa hành vi.
http://weblog.rubyonrails.org/2012/10/29/ann-rails-3-2-9-rc1-has-been-released/
Bạn có nghĩ rằng có thể liên quan?
Tôi không nghĩ rằng cả hai có liên quan, bởi vì tôi tin rằng sự thay đổi có liên quan đến việc một thông báo đã được thêm vào tên tài sản hay không, trong khi vấn đề của tôi có liên quan nhiều hơn đến việc nén javascript. Có thể vấn đề tương tự tồn tại với config.asset.compression và họ chưa tìm thấy nó, tôi cho là vậy. Ở mức nào, cảm ơn cho những người đứng đầu về điều này. –
Cũng đáng chú ý ... Ngoài giải pháp ncherro bạn sẽ cần thực hiện như sau:
- đảm bảo đặt mô-đun mới của bạn ở nơi sẽ được tải theo mặc định. Đã lib/extras trong trường hợp của tôi.
- chạy
rake assets:clean
để xóa nội dung hiện tại của bạn. - chạy
rake assets:precompile
để biên dịch nội dung của bạn bằng máy nén mới. - khởi động lại ứng dụng của bạn ... tôi sử dụng
touch tmp/restart.txt
Chúc mừng gỡ lỗi;)
Tôi cũng cần để gỡ lỗi js của tôi vì vậy tôi đã cố gắng giải pháp ncherro của. Vấn đề là nó vẫn sẽ ném
rake hủy bỏ! uninitialized NoCompression liên tục
Vì vậy, tôi chỉ cần đặt lớp NoCompression trong file production.rb
# Compress JavaScripts and CSS
class NoCompression
def compress(string)
# do nothing
string
end
end
config.assets.compress = true
config.assets.js_compressor = NoCompression.new
config.assets.css_compressor = NoCompression.new
Dưới Rails 4 chỉ cho ý kiến ra dòng
# config.assets.js_compressor = :uglifier
trong config/environments/production.rb
làm việc cho tôi . Hình như mặc định không phải là nén.
Nhận xét ra công cụ sửa lỗi và thêm config.assets.debug = true
. Điều này làm việc cho tôi.
JavaScripts Nén và CSS:
config.assets.js_compressor = :uglifier
chế độ Debug vô hiệu hóa nối và tiền xử lý tài sản. Nhưng tùy chọn này có thể gây ra sự chậm trễ đáng kể trong quan điểm vẽ với một số lượng lớn tài sản phức tạp:
config.assets.debug = true
Với Rails 4 trên Heroku bạn cần phải làm hai việc. Đầu tiên là @geekQ đề cập, nhận xét ra dòng js_compressor trong config/environments/production.rb
# config.assets.js_compressor = :uglifier
Thứ hai, bạn cần phải xem xét Heroku's asset pipeline cache for Rails 4. Bất kỳ tập tin với MD5 giống như phiên bản trong bộ nhớ cache sẽ không được biên dịch lại. Phiên bản trước đó (có thể được nén) sẽ được phân phối. Bất kỳ tệp nào bạn chỉnh sửa sẽ có MD5 mới và được biên dịch lại.
Bạn cũng có thể lọc toàn bộ bộ nhớ cache của tài sản bằng Heroku Repo plugin vào thanh công cụ Heroku. Cài đặt, sau đó sử dụng lệnh
heroku repo:purge_cache
Triển khai phiên bản mới sau khi xóa bộ nhớ cache và tất cả nội dung của bạn sẽ được biên dịch lại.
Xóa 'config.assets.js_compressor =: uglifier' là đủ để sửa nó – Dorian
Tôi phải cập nhật Rails.application.config.assets.version
trong config/initializers/assets.rb
để các thay đổi production.rb
có hiệu lực.
Tìm và nhận xét ra những dòng trong environments/production.rb
:
config.assets.js_compressor = ...
config.assets.css_compressor = ...
- 1. wicked_pdf + đường ray tài sản của đường ray + nhập khẩu sass trong sản xuất
- 2. Điều chỉnh hiệu suất đường ray cho sản xuất?
- 3. Tài sản không tải trong sản xuất cho ứng dụng đường ray
- 4. Đường ray: Thử nghiệm sản xuất
- 5. Tôi làm cách nào để vô hiệu hóa Đường ống tài sản Rails 3.1?
- 6. 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?
- 7. Đường ray: Gửi email qua Gmail trong sản xuất
- 8. Đường ray tài sản 3.1 đường ống với PDFKit
- 9. đường ray 3.2 ActionView MissingTemplate chỉ trong sản xuất
- 10. Vô hiệu hóa bộ nhớ đệm tài sản Sprockets trong quá trình phát triển
- 11. Đường ray 2.3.3 - Cài đặt sang chế độ sản xuất
- 12. sản xuất đường ray 'css không được biên dịch trước'
- 13. ray 3.1 không thể biên dịch tài sản trên sản do tài sản chủ cấu hình
- 14. Tài sản chậm ruby 1.9.3, macos, đường ray 3.2
- 15. phát triển quản đốc và sản xuất (đường ray)
- 16. Đường ray 3. Tạo cơ sở dữ liệu sản xuất
- 17. Tài sản đường ray không được cập nhật
- 18. Vô hiệu hóa Sản phẩm Magento qua mã
- 19. PostgreSQL vô hiệu hóa nhiều hơn sản lượng
- 20. Sản phẩm Xcode -> Lưu trữ bị vô hiệu hóa
- 21. Rails 4 tài sản không được tìm thấy trong sản xuất (đường dẫn tiêu hóa là OK)
- 22. ASP.NET MVC làm thế nào để vô hiệu hóa các tuyến đường gỡ lỗi/quan điểm trong sản xuất?
- 23. Bộ sưu tập sản phẩm tải Magento bao gồm các sản phẩm bị vô hiệu hóa
- 24. Làm thế nào để nội tuyến css khi sử dụng đường ray tài sản đường ray
- 25. Giảm thiểu tập lệnh/CSS trong chế độ sản xuất với node.js
- 26. Cách tắt máy phát của tài sản trên đường ray 3.2
- 27. Đường dẫn tài sản truy cập từ Bộ điều khiển đường ray
- 28. Biến SCSS hiện có trong đường ống tài sản đường ray?
- 29. những gì hiện? Body = 1 làm trong đường ray 3.1 đường ống tài sản?
- 30. Một số bộ giảm thiểu css và js tốt cho mã sản xuất là gì?
Bạn đã chắc chắn thay đổi 'config/môi trường/production.rb'? –
Bạn có đang sử dụng trình trợ giúp thẻ Rails để truy cập nội dung (javascript_include_tag 'script.js') không? Bạn có thể tập trung vào một tệp và cung cấp cho chúng tôi ví dụ về cách nó được triển khai và những gì đang xảy ra? – mltsy