我有一些css文件被资产组合成一个css文件。他们对cssrewrite重写的图像资产有一些参考。 Cssrewrite显然是完全错误的链接。
文件夹结构:
-src
-Project
-StoreBundle
-public
-images
-store
-v2
-logo.svg
-css
-store
-v2
-font.css
-html5reset.css
-store.css
我在config.yml中有以下资产设置:
store_web_css:
inputs:
- '@ProjectStoreBundle/Resources/public/css/store/v2/html5reset.css'
- '@ProjectStoreBundle/Resources/public/css/store/v2/font.css'
- '@ProjectStoreBundle/Resources/public/css/store/v2/store.css'
filters:
- ?yui_css
- cssembed
- cssrewrite
output: css/store.web.css
Assetic设置为将图像写入/web/bundles/projectstore/images/store/v2/
,而组合的css文件(store.web.css)写成`/ web / css / store'
css文件中有以下链接:
url('../bundles/projectstore/images/store/v2/logo.svg');
在/web/css/store.web.css中成为了这个:
url(../Resources/public/css/store/bundles/pokkistore/images/store/v2/logo.svg);
我在其他帖子中读到cssrewrite过滤器使用引用css文件的@样式的错误,但是即使我尝试更改它们,logo.svg和其他资产的链接仍然会被破坏。
Assetic将write_to设置为“web / store”,没有read_from的设置。
答案 0 :(得分:0)
您需要使用bundles/projectstore
表示法而不是@ProjectStoreBundle/Resources/public
表示法stated in the official documentation:
您使用实际的,可公开访问的路径引用了CSS文件:bundles / app / css。您可以使用其中任何一个,除了在使用CSS样式表的@AppBundle语法时存在导致cssrewrite过滤器失败的已知问题。
和使用相对路径指向样式表编写时的位置,而不是使用Assetic处理样式表的位置:
url('../bundles/projectstore/images/store/v2/logo.svg');
错误,它应该有一个相对的资产路径,如:
url('logo.svg');
如果它们都在同一目录中。或者在你的情况下:
url('../../../images/store/v2/logo.svg');
答案 1 :(得分:0)
只需更改输出以匹配您的路径:
像...
{%stylesheets'@ DefaultBundle / Resources / public / css / screen-normalize.css'output ='/ bundles / default / css / main.css'%}