13

Tôi đã phát triển một trang web trong đường ray, mọi thứ diễn ra tương đối suôn sẻ. Đột nhiên, những thay đổi của tôi đối với lượt xem và nội dung không còn hiển thị nữa. Tôi thay đổi biểu định kiểu hoặc một số html và tải lại trình duyệt của mình tại http://0.0.0.0:3000 và không có gì thay đổi. Vì vậy, tôi khởi động lại WEBrick và vẫn không có gì thay đổi. Đây là trường hợp nếu tôi thay đổi hình ảnh hoàn toàn.Rails dev môi trường không cập nhật html/css/tài sản ngay cả sau khi khởi động lại máy chủ

Cách duy nhất để có được những thay đổi mới là tiền biên dịch tài sản:

C:\Users\me\website>rake assets:precompile 
C:/Ruby193/bin/ruby.exe C:/Ruby193/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets 

Tại sao nó cho thấy sản xuất như RAILS_ENV? Có lẽ môi trường phát triển của tôi bằng cách nào đó biến thành môi trường sản xuất? Nhưng thậm chí sau đó tôi không cần phải biên dịch trước tài sản để có được những thay đổi được phản ánh. Dù sao Rails.env.development? trả lại trueRails.env.production? trả về false trong bộ điều khiển và tệp erb.

Tôi đã thử xóa thư mục/tmp của mình không có kết quả.

tôi phải thêm dòng sau để cấu hình/application.rb để có được Heroku để làm việc với la bàn:

config.assets.initialize_on_precompile = false 

Tuy nhiên, loại bỏ dòng đó không giúp vấn đề của tôi anyway.

Trả lời

31

Xóa nội dung trong thư mục public/assets/ của bạn. Đó là nơi các tập tin biên dịch sẵn đi, và chúng được phục vụ nếu chúng tồn tại, thay vì yêu cầu thông qua Sprockets. Bạn có thể an toàn chỉ cần nuke toàn bộ thư mục, và mọi thứ sẽ hoạt động trở lại.

+1

hoàn hảo, nhờ –

+4

Thật không may điều này vẫn không làm việc cho tôi trong phát triển. – Donato

+6

Cũng đáng để xóa thư mục 'tmp/cache' của bạn – McFadden

7

Kỹ thuật khác là đổi tên thư mục public/assets/thành một cái gì đó như public/assets_hide /. Sau đó đổi tên nó trở lại trước khi chạy "rake tài sản: biên dịch trước" và đẩy đến máy chủ. Điều này cắt giảm thời gian biên dịch trước và cũng bảo tồn quyền truy cập tệp tài sản đối với một số đá quý, chẳng hạn như phong phú, có bản sao trên nội dung.

Một cách dễ dàng hơn là để sửa đổi config/môi trường/file development.rb của bạn để:

config.serve_static_assets = false 

Sau đó, bạn sẽ không cần phải gây rối với công chúng/tài sản thư mục. Tuy nhiên, nếu bạn đang sử dụng một cái gì đó như kẹp giấy để tải lên các tệp hình ảnh, điều này sẽ không hoạt động vì các tệp hình ảnh sẽ không được phân phối.

3

lẽ hiển nhiên đối với tất cả mọi người, nhưng chỉ muốn nói thêm rằng nếu xóa hoặc đổi tên công/tài sản/thư mục, bạn sẽ có lẽ cũng cần phải khởi động lại máy chủ địa phương của bạn và bộ nhớ cache của trình duyệt rõ ràng :-)

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