symfony2前台模板中css导入后背景图片不显示 -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

symfony2前台模板中css导入后背景图片不显示

2016-06-03 14:03:56 1898 1

symfony2管理css后,css中定义有背景图片,symfony2改变了css的路径,却没有改变css内定义的背景图片的路径,导致背景图片无法显示,怎么办?先谢谢大家了!

取消 提交回答
全部回答(1)
  • 杨冬芳
    2019-07-17 19:26:32

    如果你是使用的 Assetic 的话,那么你需要添加 cssrewrite fileter,即:

    {% stylesheets 'bundles/app/css/*' filter='cssrewrite' %}

    这个过滤器是什么意思呢?

    在你 assets:dump(或者 assets:install) 的时候,Symfony2 会将你的静态文件(CSS)从 Bundle 中移出到 Web 根目录,因此有些文件的路径就发生了变化(比如在css中引用的图像),从而导致了主题所说的问题。

    因此 cssrewrite 过滤器就是专门用来计算 css 与图像之间的相对关系,并直接更新 CSS 中的路径。

    跟你举个实际应用中的例子,你现在有两个文件 logo.png 和 style.css

    /src/AppBundle/Resources/public/img/logo.png
    /src/AppBundle/Resources/public/css/style.css

    你在 style.css 里引用 logo.png 需要 ../img/logo.png,对吧?

    现在,当你 assets:dump 时,Symfony2Assetic 组件会将 logo.png style.css 导出到 /web 目录,因为 /src 下是不能直接访问的,现在 logo.png 和 style.css 将会被导出在新目录:

    /web/bundles/app/img/logo.png
    /web/css/11e4a17.css

    你会看到,11e4a17.css(style.css 被重命名后的文件) 和 logo.png的相对关系已经发生了变化,原先的 ../img/logo.png 已经不能引用到 logo.png 了,cssrewrite 的意义就在于,它将更新 11e4a17.css(style.css) 中的 ../img/logo.png ../bundles/app/img/logo.png

    啰嗦说这么多,希望能帮到题主。

    0 0
相关问答

1

回答

nacos中docker-compose无法安装启动2.1.1要怎么解决啊?

2022-08-15 14:37:53 49浏览量 回答数 1

1

回答

如何用CSS实现背景图片自适应?

2022-03-28 22:49:44 231浏览量 回答数 1

2

回答

通过图片处理服务处理后的PNG格式图片的透明背景变黑?

2020-03-26 18:58:03 986浏览量 回答数 2

1

回答

安装SQL Server 2008 Express时绕过.Net v3.5验证

2019-12-29 13:19:28 3625浏览量 回答数 1

1

回答

css背景图片路劲怎么引入

2018-05-10 20:05:53 1781浏览量 回答数 1

1

回答

图片处理服务处理后的PNG图片的透明背景变黑

2018-03-09 18:31:28 1216浏览量 回答数 1

1

回答

CSS 2个图片层放置问题

2016-07-08 15:45:30 1564浏览量 回答数 1

1

回答

如何保证CSS背景图片不变形?

2016-06-06 18:13:41 4517浏览量 回答数 1

1

回答

如何将网页CSS背景图高斯模糊且全屏显示

2016-03-24 16:19:36 3357浏览量 回答数 1

1

回答

DIV中添加了背景图片不显示

2016-03-23 14:46:49 4647浏览量 回答数 1
+关注
杨冬芳
IT从业
1
文章
9167
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载