Tôi cần một số lời khuyên về cách làm việc với các tài sản trong Symfony 2. Ví dụ, chúng ta phải luôn luôn thực hiện các nội dung: cập nhật mỗi khi một hình ảnh được thêm vào? Tôi biết Assetic chăm sóc quản lý trên các tệp css và javascript nhưng về hình ảnh thì sao? Thực hành tốt nhất cho việc phát triển front-end với Symfony 2 là gì? Làm thế nào để các bạn thiết lập các tệp css, hình ảnh và js trong ứng dụng của mình để dễ dàng phát triển, triển khai và thay đổi?Symfony 2 - Làm việc với các tài sản
Trả lời
Về hình ảnh, nếu bạn thêm nó vào thư mục công cộng của bạn, tôi nghĩ không cần phải thực hiện assets:update
Tuy nhiên, nếu bạn thêm hình ảnh trong thư mục nguồn của một gói, bạn có thể phải, tùy thuộc vào Hệ điều hành của bạn và các tùy chọn bạn đã sử dụng khi được gọi là assets:install
Nếu bạn đang sử dụng một hệ điều hành hỗ trợ liên kết tượng trưng (linux, OS X và tôi đoán tất cả HĐH nhưng Windows), bạn có thể cài đặt nội dung đang gọi (Tôi không nhớ chính xác cuộc gọi, điều quan trọng ở đây là tùy chọn liên kết tượng trưng):
php app/console assets:install web --symlink
Bằng cách này, thay vì có bản sao tài nguyên của từng gói, bạn sẽ có một liên kết tượng trưng, do đó không cần phải cập nhật. Nếu bạn có một hệ điều hành không hỗ trợ các liên kết tượng trưng, tôi nghĩ bạn sẽ phải tiếp tục cập nhật hoặc cài đặt lại tài sản (trên thực tế, tôi luôn sử dụng assets:install
, tôi không biết có một tùy chọn cập nhật: P). Về việc thiết lập, tôi thường đặt tất cả css, js, hình ảnh và bất kỳ tài nguyên công cộng nào trong một nhóm nếu nó chỉ được sử dụng trong gói và đặt nó vào thư mục công cộng nếu nó được nhiều gói sử dụng hoặc tôi sử dụng có kế hoạch sử dụng nó trong các gói khác.
'symlink' cũng hoạt động trên Windows – DoubleYo
Ngoài ra, nếu bạn đang sử dụng Composer để cập nhật gói nhà cung cấp của mình, đừng quên đặt "" thêm ": {" symfony-asset-install ":" symlink "}' vào tệp composer.json của bạn ([xem tài liệu ] (http://symfony.com/doc/current/book/installation.html#updating-vendors)). – Geert
'symlink' cũng hoạt động trên Windows khi bạn đang chạy cmd (hoặc git bash) trong chế độ Quản trị viên. :) bởi vì Assetic làm việc với http://php.net/manual/en/function.symlink.php được hỗ trợ trên Windows. – Athlan
Tính đến Symfony 2.7 này sẽ tạo liên kết tượng trưng tương đối trong web
thư mục:
php app/console assets:install web --symlink --relative
Trong composer.json add:
"extra": {
"symfony-assets-install": "relative"
}
Điều này cũng sẽ tạo liên kết tượng trưng tương đối trên composer update
.
Đây là suy nghĩ thú vị về --symlink.You có thể cấu hình (config) một lần và sử dụng forever.If bạn muốn biết thêm http://www.w3docs.com/snippets/symfony/how-to-keep-symlinks-in-web-bundles-after-composer-update.html
là 'tài sản: update' một lệnh thực? Tôi đã không tìm thấy nó đề cập đến bất cứ nơi nào khác, và không thể tìm thấy nó trong Symfony/Assetic codebase. Nếu nó tồn tại, tôi muốn được biết thêm về nó. – Sam
Liên quan: http://stackoverflow.com/questions/12123069/how-to-properly-change-what-composer-or-symfony2-does-after-running-composer-up – Kzqai