4

我是 symfony 2 和 Assetic 的新手。我想为我的 CSS 使用资产和 Sass。我使用自定义字体。我在资源下的包中创建文件夹“assets/css”,里面有_base.scss和main.scss。在我的公共文件夹中,我有:

  • css
  • 字体
  • 图片
  • js

在字体中,我有我的自定义字体。

在我的 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;

我在 assets:install 之后有这个路径,我的文件在 web/mybundle/fonts 和 web/mybundle/images 下

当我做php app/console assetic:dump --env=prod --no-debug

我在我的网站上有:

  • css
  • js(公共文件夹)

但我没有字体文件夹和图像文件夹。如果 IO 在图像中看到源代码,我有这个路径 /bundles/Mybundle/images/darkGreyBackground.jpg

为什么我的网页中没有所有文件夹?用 /bundles/Mybundle/images/darkGreyBackground.jpg 和 /bundles/Mybundle/fonts/billabong-webfont.ttf 调用我的图像和字体是否正确?

4

2 回答 2

1

web/bundles/Mybundle/这是一种标准的和预期的行为,在您调用该php app/console assetic:dump命令后,您的包资源的符号链接处于下方。

要在您的 css 中使用资产生成的路径,您可以使用cssrewrite过滤器或更简单,您的cssimages文件夹位于同一个主文件夹中,使用相对路径:

@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-目录结构

于 2013-02-25T20:06:34.707 回答
-1

我遇到了同样的问题,我只是尝试使用以下方法作为解决方法。到目前为止似乎工作。

{% stylesheets
    output='assets/fonts/glyphicons-halflings-regular.ttf'
    'bundles/bootstrap/fonts/glyphicons-halflings-regular.ttf'
%}{% endstylesheets %}

注意任何输出的遗漏,这意味着模板上没有显示任何内容。当我运行 assets:dump 时,文件被复制到所需的位置,并且 css 包含预期的工作。

于 2013-10-19T22:18:02.087 回答