我已经通过将相关文件复制到以下位置为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等,而其他第三方库也存在完全相同的问题。
感谢。
答案 0 :(得分:3)
我在一段时间后发现了适当的解决方案:
Assetic(一个很棒的软件)可以通过各种过滤器运行你的CSS,解决这个问题的是ccsrewrite,正如Symfony文档中所解释的那样,它将修复CSS文件中包含的路径。
答案 1 :(得分: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文件的位置,因为一个好的写作css会为你处理它。另一方面,{{asset()}}方法指向正确的目录,因此您不必担心这一点。