Laluan untuk Aset CSS dalam Symfony 2
Masalah:
Dalam projek Symfony 2 , anda mempunyai fail CSS dengan rujukan kepada imej dan fon (cth., url(..)). Anda ingin merujuk fail ini dalam CSS tanpa mendedahkan secara langsung yang asal dalam direktori awam.
Penyelesaian Kemungkinan:
Penyelesaian 1: Laluan Mutlak
Menukar semua laluan dalam CSS kepada laluan mutlak bukanlah penyelesaian yang sesuai kerana aplikasi mungkin tidak sentiasa boleh diakses daripada subdirektori yang sama.
Penyelesaian 2: Asetik dengan Penapis "cssrewrite"
Menggunakan Assetic dengan penapis "cssrewrite" boleh membantu menulis semula laluan , tetapi ia sering mengakibatkan laluan yang salah generasi.
Penyelesaian 3: Laluan Relatif
Menukar semua laluan dalam CSS menjadi relatif kepada lokasi lembaran gaya berfungsi kecuali dalam persekitaran pembangunan, di mana laluan CSS mengandungi "/app_dev.php" dan membawa kepada "NotFoundHttpException" untuk imej laluan.
Penyelesaian Berfungsi:
Satu-satunya penyelesaian yang berfungsi ialah meletakkan fail CSS asal dalam direktori peribadi (cth., "Sumber/aset/css") dan menyusunnya ke direktori awam (cth., "web/css") menggunakan Asetik.
Struktur Kod:
... +-src/ | +-MyCompany/ | +-MyBundle/ | +-Resources/ | +-assets/ | +-css/ | +-stylesheets... +-web/ | +-css/ | +-stylexyz.css | +-images/ | +-images... ...
Kod Ranting Asetik:
{% stylesheets '@MyCompanyMyBundle/Resources/assets/css/*.css' filter="cssrewrite" %} <link rel="stylesheet" href="{{ asset_url }}" /> {% endstylesheets %}
Proses Penyusunan :
Proses ini akan memastikan bahawa fail CSS adalah disusun ke dalam direktori awam dengan laluan imej yang betul:
Kelebihan:
Atas ialah kandungan terperinci Bagaimana untuk Mengurus Laluan Aset CSS dalam Symfony 2 untuk Penggunaan yang Selamat dan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!