Symfony 2 中 CSS 文件中资源的路径
问题:
使用 Symfony 2 将 CSS 文件与图像集成特定目录
尝试的解决方案:
-
绝对路径:由于潜在的部署,在 CSS 文件中维护绝对路径不是一个可扩展的解决方案问题。
-
使用“cssrewrite”进行资产管理过滤器: 虽然使用 cssrewrite 过滤器在某些情况下有所帮助,但它可能会生成不正确的路径。
-
带有“../”的相对路径:此方法适用于开发环境,但生产环境遇到问题。
最终解决方案:
选项1:编译后删除原始CSS文件
- 将原始CSS文件存储在私有“assets”目录中。
- 使用 assetic:install 在公共“web”目录中安装 CSS 文件。
- 执行assetic:dump 编译 CSS 并在 /web/css/stylexyz.css 中生成最终版本。
- 在 assetic:dump 后删除 /public 目录中的原始 CSS 文件。
选项2:预编译CSS并直接公开安装目录
- 使用您喜欢的方法(例如 Sass、Less)预编译 CSS。
- 将预编译的 CSS 文件复制到公共“web”目录中.
- 通过 assetic:install 安装 CSS 文件,这将创建指向已编译 CSS 的符号链接
- 在 assetic:install 后删除 public 目录中的原始 CSS 文件。
好处:
- 符合所需的目录结构。
- 防止原始 CSS 文件暴露给公共。
- 确保对图像的正确路径引用。
- 允许使用 CSS 过滤器。
注意事项:
- 最终的解决方案跳过了 Twig 中 asset() 的使用,因为它假定了 CSS文件已预编译和安装。
- 设置部署或自动化流程来根据需要处理 CSS 文件的安装和删除非常重要。
以上是如何管理 Symfony 2 应用程序的 CSS 文件中的资源路径?的详细内容。更多信息请关注PHP中文网其他相关文章!