我是Symfony(2.4)的新手,无法理解Assetic如何通过应用程序而不是文件系统来进行开发。
特别是,我正在尝试设置BrainCrafted Bootstrap Bundle,这样我就不必转储我的资产来开发它。
在我的基本模板文件中,我有:
<link href="{{ asset('/css/bootstrap.css') }}" rel="stylesheet" media="screen">
当我使用app_dev.php渲染页面时,路径不会改变,仍然会尝试通过/css/bootstrap.css加载它,这不存在。
我对“use_controller”的资产设置设置为true。
但是,如果我包含这样的样式表:
{% stylesheets '@MyCustomBundle/Resources/public/css/*' %}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
然后,样式表的URL正确地以“app_dev.php”为根。
为什么主asset
枝条功能不在app_dev.php之前?
答案 0 :(得分:1)
BootstrapBundle使用config.yml
配置Assetic。您需要使用php app/console assetic:dump
转储资产以生成CSS文件。
如果要在Twig模板中配置样式表,则应使用stylesheets
(如DovydasBartkevičius所述),如果要在config.yml
中配置样式表,则必须生成静态CSS使用php app/console assetic:dump
并使用assets
在模板中包含静态文件。
BootstrapBundle使用config.yml
配置Assetic,因此您必须转储资产。在开发过程中,您还可以在每次源更改时使用php app/console assetic:dump --watch
生成CSS。
答案 1 :(得分:0)
{{ asset }}
函数只是添加项目的assets文件夹的路径。您的资产似乎位于软件包的目录中,因此它们不公开,无法访问。
http://symfony.com/doc/current/book/templating.html#linking-to-assets
{% stylesheets %}
和{% javascripts %}
实际上从您的捆绑包中获取资产文件,如果存在,则应用过滤器(压缩等),并通过控制器请求服务。
您可以使用命令行API php app/console assetic:dump
转储资产文件。
http://symfony.com/doc/current/cookbook/assetic/asset_management.html#dumping-asset-files
答案 2 :(得分:0)
如果您将绝对路径传递给asset
函数,那么它将返回参数而不会更改它。