6

Chrome DevTools Autosave không hoạt động với Rails Asset Pipeline. Thủ phạm của vấn đề nằm trong URL nội dung - tôi không thể giải mã đường dẫn tệp thực tế theo URL của nó. Ví dụ, /assets/application.css có thể tham chiếu đến cả app/assets/stylesheets/application.css, lib/assets/stylesheets/application.css, hoặc vendor/assets/stylesheets/application.css.Làm cho đường ống nội dung hoạt động với Chrome DevTools Tự động lưu

Tôi tự hỏi, làm thế nào để thay đổi tài sản URL với một trong các cách sau:

  • /app/assets/stylesheets/application.css (phù hợp với đường dẫn tập tin chính xác thực tế, giải pháp hoàn hảo)
  • /tài sản /application.css?source_url=app/assets/stylesheets/application.css (giới thiệu tham số truy vấn source_url)

Tôi sẽ đánh giá cao mọi trợ giúp viết plugin Rails cho điều đó.


Cập nhật: tôi điền an issue to sprockets.

Trả lời

3

Tôi sẽ cố gắng để có được quả bóng lăn, nhưng tôi sẽ phải làm nhiều hơn nữa để xác minh hoặc cung cấp một câu trả lời tốt hơn, vì vậy tôi sẽ đánh dấu câu trả lời này wiki cộng đồng. Bằng cách đó, những người khác có thể trả lời bên dưới và hoặc chỉnh sửa bài đăng này.

Tôi đã phải thiết lập đường ống tài sản cho Sinatra, và nói chung, trong các phiên bản mới nhất của Sprockets (được sử dụng để cung cấp đường ống tài sản trong Rails) lớp Sprockets::Asset có các phương pháp để có được path and logical path.

Tôi tin Rails sử dụng trình trợ giúp asset_path để tạo url công khai đối diện với lớp Sprockets. Điều này lần lượt xuất hiện để sử dụng phương pháp cá thể AssetPaths#compute_public_path. Bước đầu tiên tốt sẽ là sửa đổi các phần này của mã để thêm thông số source_url dựa trên phân tích cú pháp của bạn về số source.pathname. Giả sử nguồn đó là một thể hiện của Sprockets::Asset ở dạng này hay dạng khác.

0

Tôi không khá chắc chắn làm thế nào bạn mong đợi nguồn đến từ nhưng nó đã được cung cấp bởi ActionView::Helpers::AssetTagHelper

http://api.rubyonrails.org/classes/ActionView/Helpers/AssetTagHelper.html

image_tag("rails.png") 
# => <img alt="Rails" src="http://assets.example.com/images/rails.png?1230601161" /> 

stylesheet_link_tag("application") 
# => <link href="http://assets.example.com/stylesheets/application.css?1232285206" media="screen" rel="stylesheet" type="text/css" /> 
Các vấn đề liên quan