dan*_*dan 1 less symfony assetic
我正在使用Symfony 2构建一个网站并使用Less,就像这样
index.html.twig:
{% stylesheets
'@AcmeWebappBundle/Resources/public/css/website.less'
filter='?yui_css'
%}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
Run Code Online (Sandbox Code Playgroud)
config.yml:
assetic:
filters:
lessphp:
file: %kernel.root_dir%/../vendor/lessphp/lessc.inc.php
apply_to: "\.less$"
Run Code Online (Sandbox Code Playgroud)
现在文件website.less增长了很多,所以我决定将它拆分成不同的文件,如下所示:
{% stylesheets
'@AcmeWebappBundle/Resources/public/css/mixins.less'
'@AcmeWebappBundle/Resources/public/css/general.less'
'@AcmeWebappBundle/Resources/public/css/tasks.less'
'@AcmeWebappBundle/Resources/public/css/notes.less'
filter='?yui_css'
%}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
Run Code Online (Sandbox Code Playgroud)
该文件mixins.less包含mixins我在其他文件中使用的所有内容.
问题是,如果我引用了一个mixin notes.less,那是无法识别的 - 我相信这是因为Assetic只在它正在编译的文件中搜索mixins.顺便说一句,我使用lessphp,而不是node.js.
我怎样才能解决我的问题?如何使用mixins.less文件中声明的mixin使用不同的Less文件?
在您的示例中,您需要保留website.less并让它导入所有相关的较少文件,如下所示:
website.less:
/* import the necessary less files */
@import "mixins.less";
@import "general.less";
@import "tasks.less";
@import "notes.less";
Run Code Online (Sandbox Code Playgroud)
index.html.twig:
{% stylesheets
'@AcmeWebappBundle/Resources/public/css/website.less'
filter='?yui_css'
%}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
Run Code Online (Sandbox Code Playgroud)
这样你可以有你的控制器或束,其住在同捆数较少的文件,只需输入所需标记相关的文件(例如frontend.less,backend.less,mobile.less).
我鼓励你看看Twitter Bootstrap如何处理导入并很好地分离一切.
| 归档时间: |
|
| 查看次数: |
1583 次 |
| 最近记录: |