Laluan Aset dalam Fail CSS dalam Symfony 2
Symfony 2 menyediakan mekanisme untuk mengurus aset, seperti CSS dan fail imej, melalui komponen Asetik. Walau bagaimanapun, menentukan laluan yang betul ke aset yang dirujuk dalam CSS boleh menjadi cabaran dalam struktur direktori projek tertentu.
Tinjauan Keseluruhan Masalah
Pertimbangkan struktur direktori berikut:
... +-src/ | +-MyCompany/ | +-MyBundle/ | +-Resources/ | +-assets/ | +-css/ | +-stylesheets... +-web/ | +-images/ | +-images... ...
Dalam kes ini, fail CSS berada di bawah /app/Resources/assets/css, manakala imej terletak di /web/images. Matlamatnya adalah untuk merujuk imej ini dari dalam fail CSS.
Penyelesaian Gagal
Penyelesaian Pertama: Laluan Mutlak
Menukar laluan dalam fail CSS kepada URL mutlak bukanlah penyelesaian yang berdaya maju kerana aplikasi mungkin tidak sentiasa berjalan dalam direktori akar.
Penyelesaian Kedua: Asetik dengan Penapis CSSrewrite
Menggunakan Asetic dengan penapis "cssrewrite" juga gagal, kerana kod yang dijana tidak menghasilkan laluan yang betul ke imej.
Penyelesaian Semasa: Laluan Relatif
Mentakrifkan imej laluan relatif kepada fail CSS berfungsi dalam persekitaran pengeluaran tetapi gagal dalam persekitaran pembangunan.
Penyelesaian Berfungsi
Penyelesaian yang paling berkesan ialah menyimpan fail CSS dalam direktori boleh diakses secara umum dan bina semula CSS semasa penggunaan. Begini caranya:
Dengan pendekatan ini, fail CSS disusun semula semasa penggunaan, memastikan ia mengandungi laluan yang betul ke imej. Imej itu sendiri masih terdapat dalam direktori web/imej, tetapi ia tidak boleh diakses secara langsung oleh pengguna.
Atas ialah kandungan terperinci Bagaimana untuk Merujuk Aset dengan Betul dalam Fail CSS Dalam Projek Symfony 2?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!