2013-05-03 49 views
18

Tôi đã bắt đầu phát triển ứng dụng đường ray đơn giản. Sau vài giờ làm việc tôi đã nhận thấy rằng bằng cách nào đó các css đã xóa vẫn được áp dụng cho các trang web.Cài đặt "config.assets.debug" chính xác là gì?

Để khắc phục vấn đề tôi thực hiện các hành động sau nhiều lần:

  1. dừng/khởi động máy chủ
  2. sử dụng đường ray máy chủ
  3. sử dụng torquebox máy chủ
  4. cache của trình duyệt xóa

nhưng không có gì thay đổi. Nó rất lạ - các định nghĩa css mới được áp dụng, nhưng những định nghĩa mà tôi đã xóa vẫn còn ở đó. Vì vậy, tôi đã từ bỏ và quyết định tạo dự án mới.

Tôi đã thiết lập dự án mới (giàn giáo của nó giống như dự án đầu tiên) và khi tôi mở một trong các chế độ xem, các kiểu từ dự án cũ cũng được áp dụng. Tôi đã quyết định xem lại một lần nữa vào http://guides.rubyonrails.org/asset_pipeline.html và tìm hiểu rằng thiết lập

#Expands the lines which load the assets 
config.assets.debug = false 

giải quyết vấn đề. Nhưng tùy chọn này làm gì chính xác? Tại sao css dự án cũ được áp dụng khi điều này đúng?

+0

Tôi nghĩ rằng nó được ghi rõ trong tài liệu http://guides.rubyonrails.org/asset_pipeline.html#turning-debugging-off, mặc dù trường hợp của bạn rất lạ. –

Trả lời

27

Hiệu ứng của tùy chọn này được mô tả rõ trong this post, nhưng tôi cũng sẽ tóm tắt ở đây. Giá trị thay đổi config.assets.debug nằm trong sự thỏa hiệp giữa thời gian tải trang trong quá trình phát triển và dễ gỡ lỗi.

Về cơ bản:

config.assets.debug = true: tài sản được phục vụ cá nhân, tổ chức cũng giống như bạn nhìn thấy chúng trong phát triển. Các ngôn ngữ được xử lý trước như SASS hoặc CoffeeScript sẽ vẫn hiển thị dưới dạng ngôn ngữ mục tiêu của chúng (ví dụ: CSS và JS, tương ứng).

config.assets.debug = false: nội dung được nhóm thành các tệp như application.cssapplication.js. Lỗi ngăn xếp dấu vết có thể sẽ không có số dòng chính xác nữa và rất khó để ánh xạ những mã đó trở lại mã ban đầu của bạn.

Các vấn đề liên quan