我目前正在使用 Symfony 2.1.0 开发一个 Web 应用程序。
我已经通读了本书的模板章节,并试图在我的网页中包含资产(现在,它只是一个样式表)。
我正在使用书中提到的三级继承系统,我的应用程序结构目前如下所示:
- 应用程序/资源/视图/
- base.html.twig:基本模板,包含标题、样式表和正文块。
- src/我的/PageBundle/资源/视图
- layout.html.twig:布局模板(扩展基本模板),将主样式表附加到样式表块,覆盖正文块,包括navigation.html.twig和定义内容块
- layout-admin.html.twig:和上面一样,但是包括navigation-admin.html.twig
- src/My/PageBundle/Resources/views/Main
- 标准模板,扩展布局模板并覆盖其内容块
- src/我的/PageBundle/资源/视图/管理
- 管理模板。与上述相同,但扩展了管理布局模板。
- src/我的/PageBundle/资源/公共/css
- main.css:主样式表
如您所见,我已将样式表放入我的包中。我不知道这是否是好习惯。
现在,问题是,在 layout.html 我添加了这个:
{% block stylesheets %}
{{ parent() }}
<link rel="stylesheet" type="text/css" href="{{ asset('css/main.css)' }}" />
{% endblock %}
但asset('css/main.css')
只是链接到/css/main.css
,而./app/console assets:install
将资产安装在web/bundles/mypagebundle/
. 我不喜欢这样,我的包名称会公开可见(这可能会让用户怀疑我正在使用 Symfony,而且我喜欢保留我网页的内部结构,嗯,内部的)。是否可以更改assets:install
安装资产的目录?在我看来,手动安装 web/.js 中的资产似乎很乏味。
我也在考虑使用 Assetic 进行资产管理,因为我个人喜欢自动缩小我的脚本/样式表并将它们全部存储在一个文件中的可能性。但是,我听说如果您在不同级别包含样式表,这是不可能的,即它不适用于三级继承系统。有可能解决这个问题吗?另外,使用 Assetic 可以让我对公众隐藏我的捆绑包名称吗?