我是symfony 2和Assetic的新手。我想在我的CSS中使用assetic和Sass。我使用自定义字体。我在我的资源包下创建了资源文件夹“assets / css”,里面我有_base.scss和main.scss。在我的公共文件夹中,我有:
在字体中,我有自定义字体。
在我的SCSS中,我会像这样检索我的字体和图像:
@include font-face("billabongregular", font-files("/bundles/Mybundle/fonts/billabong-webfont.ttf"));
background: $bg_header url("/bundles/Mybundle/images/darkGreyBackground.jpg") fixed no-repeat top center;
我在资产之后有这条路径:安装,我的文件在web / mybundle / fonts和web / mybundle / images
下当我做php app/console assetic:dump --env=prod --no-debug
我在网上:
但我没有Fonts文件夹和图像文件夹。如果IO看到图像中的源代码我有这个路径/bundles/Mybundle/images/darkGreyBackground.jpg
为什么我的网络中没有所有文件夹?是不是用/bundles/Mybundle/images/darkGreyBackground.jpg和/bundles/Mybundle/fonts/billabong-webfont.ttf调用我的图像和我的字体?
答案 0 :(得分:1)
这是一种标准和预期的行为,在您调用web/bundles/Mybundle/
命令后,您的捆绑包资源的符号链接位于php app/console assetic:dump
下。
要在css中使用资源生成路径,您可以使用cssrewrite
过滤器,甚至更简单,您的css
和images
文件夹位于同一主文件夹中,使用相对路径:
@include font-face("billabongregular", font-files("../fonts/billabong-webfont.ttf"));
background: $bg_header url("../images/darkGreyBackground.jpg") fixed no-repeat top center;
修改强>
在捆绑包中,如果要在运行web
命令后在assets:install
目录中访问文件,则必须将它们放在Resources/public/
目录中,如此处所述:http://symfony.com/doc/current/book/page_creation.html#bundle-directory-structure
答案 1 :(得分:-1)
我遇到了同样的问题,我只是尝试使用以下方法作为解决方法。似乎到目前为止工作。
{% stylesheets
output='assets/fonts/glyphicons-halflings-regular.ttf'
'bundles/bootstrap/fonts/glyphicons-halflings-regular.ttf'
%}{% endstylesheets %}
请注意省略任何输出,这意味着模板上没有显示任何内容。当我运行assetic时:转储文件被复制到所需位置,css包含按预期工作。