如何在 Symfony 2 中管理 CSS 资产路径以实现安全高效的部署?
Symfony 2 中 CSS 资源的路径
问题:
在 Symfony 2 项目中,您有一个包含图像和字体引用的 CSS 文件(例如 url(..))。您希望在 CSS 中引用这些文件,而不直接在公共目录中暴露原始文件。
可能的解决方案:
解决方案 1:绝对路径
将 CSS 中的所有路径更改为绝对路径并不是一个合适的解决方案,因为应用程序可能并不总是从同一个子目录访问。
解决方案 2:使用“cssrewrite”的 Assetic " 过滤器
将 Assetic 与“cssrewrite”过滤器一起使用可以帮助重写路径,但通常会导致生成不正确的路径。
解决方案 3:相对路径
将 CSS 中的所有路径更改为相对于样式表位置是有效的,但在开发环境中除外,其中 CSS 路径包含“/app_dev.php”并导致图像路径出现“NotFoundHttpException”。
工作解决方案:
唯一的工作解决方案是将原始 CSS 文件放在私有目录中(例如“Resources/assets/css”)并将其编译为使用 Assetic 的公共目录(例如“web/css”)。
代码结构:
... +-src/ | +-MyCompany/ | +-MyBundle/ | +-Resources/ | +-assets/ | +-css/ | +-stylesheets... +-web/ | +-css/ | +-stylexyz.css | +-images/ | +-images... ...
Assetic Twig 代码:
{% stylesheets '@MyCompanyMyBundle/Resources/assets/css/*.css' filter="cssrewrite" %} <link rel="stylesheet" href="{{ asset_url }}" /> {% endstylesheets %}
编译过程:
此过程将确保 CSS 文件以正确的图像路径编译到公共目录中:
- 将原始CSS文件复制到public目录。
- 运行assetic:dump编译CSS文件。
- 从public目录中删除原始CSS文件。
优点:
- 允许将原始 CSS 文件存储在私有目录中。
- 使用正确的图像路径将 CSS 编译到公共目录。
- 不向公众公开原始 CSS 文件。
以上是如何在 Symfony 2 中管理 CSS 资产路径以实现安全高效的部署?的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

在本周的平台新闻综述中,Chrome引入了一个用于加载的新属性,Web开发人员的可访问性规范以及BBC Move
