【问题标题】:Symfony 2 Bundle - install image resourcesSymfony 2 Bundle - 安装图片资源
【发布时间】:2012-11-01 14:33:12
【问题描述】:

我通过将相关文件复制到以下位置为 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 等以及其他第 3 方库具有完全相同的问题。

谢谢。

【问题讨论】:

  • 看看github.com/phiamo/MopaBootstrapBundle让你的生活更轻松
  • 谢谢,我已经看到了,但我想知道如何为 Bootstrap 执行此操作 - 已编辑问题以说明这一点。

标签: php symfony twitter-bootstrap assetic


【解决方案1】:

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

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

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

【讨论】:

    【解决方案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() }} 方法指向正确的目录,因此您不必担心。

    【讨论】:

    • 谢谢,我可以看到它是如何工作的,这是一个合理的解决方案。但是,我以将 css 和 js 文件映射到 /css 和 /js 的方式使用资产,而不是使用完整的捆绑路径。也许没有办法按照我的要求去做,在这种情况下,我将辞职使用你的方法。
    猜你喜欢
    • 1970-01-01
    • 2022-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-25
    • 2020-04-16
    • 2021-03-25
    相关资源
    最近更新 更多