2012-08-10 20 views
5

Tôi đang nén javascripts của tôi thông qua assetic (khối trong twig cho tất cả các script trong một dir) mà hoạt động tốt trong chế độ prod. Bây giờ tôi muốn sử dụng chế độ gỡ lỗi cho env sản phẩm của tôi, vì vậy tôi chuyển đổi assetic để gỡ lỗi trong cấu hình, xóa bộ nhớ cache và đổ các tài sản với gỡ lỗi trên.Symfony 2.0 assetic dump sản xuất tên sai trong chế độ gỡ lỗi

Điều này phù hợp với một số javascripts nhưng không phải tất cả. Symfony thêm một số hậu tố cho chúng cao hơn (một) trên trang web (thẻ javascript) đối diện với tệp thực. Đôi khi xóa bộ nhớ cache và bán phá giá một lần nữa giải quyết vấn đề, nhưng noot thời gian này.

Ví dụ: Nó bãi: /web/js/main_part_3_jquery-ui_6.js Nhưng sử dụng: /web/js/main_part_3_jquery-ui_1.js

Vì vậy, làm thế nào tôi có thể giải quyết này?

Chỉnh sửa: Hậu tố wron không xuất hiện trên yêu cầu đầu tiên đến trang web sau khi xóa bộ nhớ cache.

+0

Bạn sử dụng lệnh nào cho kết xuất Tự động? –

+0

assetic: dump --env = prod – Johni

+1

Đó là hành vi mong đợi của chế độ gỡ lỗi assetic để tạo ra các tệp bội số. Tại sao bạn muốn sử dụng chế độ gỡ lỗi trong sản phẩm? (Ví dụ: "Bây giờ tôi muốn sử dụng chế độ gỡ lỗi cho sản phẩm của tôi env" WTF?) – AdrienBrault

Trả lời

3

app/console assetic:dump là hợp lý cho các tệp được lưu trong bộ nhớ cache yml - bạn nên xóa bộ nhớ cache để bán phá giá mỗi khi bạn thay đổi cấu hình.

tốt nhất của tất cả là để làm điều đó theo thứ tự này:

rm -rf app/cache/* 
app/console assets:install web 
app/console assetic:dump 

Tất nhiên, với các phím debug, môi trường cần thiết và vân vân

+2

Có, tôi đã thử xóa bộ nhớ cache theo cách thủ công, quá cũng không giải quyết được sự cố. Những gì cũng strage là, nó orks trên máy dev của tôi (Win) nhưng không phải trên máy chủ (Linux). – Johni

2

Tôi đã có một vấn đề tương tự của nhiều tạo ra tài sản và symfony không bao gồm cả tốt trên màn hình.

Đó là do bộ nhớ cache bị tắt trong trường hợp của tôi và bộ nhớ cache dường như bị định cấu hình sai. (dường như nó hữu ích khi bạn cần một phiên bản mới của các tệp của bạn, ví dụ như khi bạn cập nhật .js của bạn trong dev nhưng không muốn phá vỡ sản phẩm)

Vì vậy, vô hiệu hóa nó trong config.yml cố định nó.

 
assetic: 
    workers: 
     cache_busting: 
      enabled: false