2

我通过将相关文件复制到以下位置为 Twitter Bootstrap 创建了一个包:

  • src/Acme/BootstrapBundle/Resource/public/js
  • src/Acme/BootstrapBundle/Resource/public/css
  • src/Acme/BootstrapBundle/Resource/public/img

接下来,我执行php app/console assets:install web将捆绑资源复制到 web 文件夹,在我的 twig 模板中,我可以使用assetic 来拉入 css 和 javascript,这工作正常。

我遇到的问题是 vanilla bootstrap css 指向 web 根目录中的 /img 以获取图像资源,这些资源实际上位于/web/bundles/bellabootstrap/img

我可以手动将这些文件复制到所需位置,甚至创建符号链接,但我想知道正确的 Symfony / Assetic 方法是什么。

请注意,我对如何为 Bootstrap 执行此操作感兴趣 - jqueryui/jquery-datatables 等以及其他 3rd 方库具有完全相同的问题。

谢谢。

4

2 回答 2

3

不久前,我发现了正确的解决方案:

http://symfony.com/doc/current/cookbook/assetic/asset_management.html#fixing-css-paths-with-the-cssrewrite-filter

Assetic(一个很棒的软件)可以通过各种过滤器运行你的 CSS,解决这个问题的一个是 ccsrewrite,正如 Symfony 文档中所解释的,它将修复你的 CSS 文件中包含的路径。

于 2013-08-15T08:27:46.523 回答
2

对于 JQuery UI(平滑主题),我有:

src/Acme/YourBundle/Resources/public/css/smoothness
src/Acme/YourBundle/Resources/public/css/smoothness/jquery-ui-1.8.16.custom.css
src/Acme/YourBundle/Resources/public/css/smoothness/images
src/Acme/YourBundle/Resources/public/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png

... 和其他图像文件(就像它们来自 jquery.com 站点一样)。

在树枝上我有:

<link type="text/css" rel="stylesheet" href="{{ asset('bundles/acmeyour/css/smoothness/jquery-ui-1.8.16.custom.css') }}"></link>

无需关心 png 文件的位置,因为一个好的 writen css 会为您处理它。另一方面,{{asset() }} 方法指向正确的目录,因此您不必担心。

于 2012-11-01T18:08:19.450 回答