Home > Article > Web Front-end > How do you reference images in CSS files within a Symfony 2 project?
Problem:
You have CSS files containing paths to images, fonts, and other assets. Your file structure is as follows:
... +-src/ | +-MyCompany/ | +-MyBundle/ | +-Resources/ | +-assets/ | +-css/ | +-stylesheets... +-web/ | +-images/ | +-images... ...
You want to reference your images in the stylesheet, but various solutions have proven problematic.
1. Split into "Public" and "Private" Directories:
Store your original CSS files in a private directory (e.g., src/Common/DirtyBundle/Resources/assets/css). Copy these files into a public directory before running assetic:dump (e.g., web/bundles/commondirty/css_original).
2. Use Assetic "cssrewrite" Filter (Optional):
This filter is not strictly necessary, but it can simplify path manipulation. If used, be sure to adjust the syntax accordingly.
3. Integrate with Twig:
In your Twig template, reference the CSS files using the appropriate directories and filters:
{% stylesheets 'bundles/commondirty/css_original/container.css' filter="cssrewrite" %} <link href="{{ asset_url }}" rel="stylesheet" type="text/css" /> {% endstylesheets %} {% stylesheets '@CommonDirtyBundle/Resources/assets/css/k.css' filter="cssrewrite" %} <link href="{{ asset_url }}" rel="stylesheet" type="text/css" /> {% endstylesheets %}
4. Handle Image Paths:
Use relative or absolute paths to reference images depending on the configuration. For example:
5. Maintenance:
After generating the combined CSS file using assetic:dump, you can delete the original CSS files from the public directory if desired.
6. Remaining Constraints:
The above is the detailed content of How do you reference images in CSS files within a Symfony 2 project?. For more information, please follow other related articles on the PHP Chinese website!