我有一個有幾個不同的火焰佈局模板的流星項目,我希望他們每個都有自己的LESS樣式表。如何在每個佈局的基礎上導入它們,即不是將它們全部導入到main.less文件中?流星導入每個佈局的LESS文件
1
A
回答
0
問題是,在生產中,流星將所有CSS連接成一個大文件,因此您不能將特定文件僅附加到一個模板。
我解決這個通過了基本定義,像這樣的自動包裝DIV:
在你的路由器,如定義默認佈局在ironRouter:
Router.configure({ layoutTemplate: 'mainLayout', });
在你mainLayout模板,創建一個包裝DIV是這樣的:
<div class="custom-page-wrapper-{{currentRouteName}}"> {{> yield}} </div>
定義一個全局currentRouteName助手這樣的:
UI.registerHelper("currentRouteName",function(){ return Router.current() ? Router.current().route.getName() : ""; });
就這樣,使用該佈局模板每個模板將自動被包裹在一個自定義頁面包裝-XXXX類,它是唯一的每個模板一個div和基於路由的名字(這保證是唯一的,否則IronRouter會引發錯誤)。
之後,您可以在任何需要的LESS文件中指定該類中的任何模板特定樣式。
雖然這與爲每個模板指定不同的文件並不完全相同,但它在功能上完成同樣的事情,唯一的花費是額外的包裝div。
1
最簡單的方法是從字面上你的模板的js文件中導入像這樣:
// File layout.html
<template name="layout">
<div class="layout-wrapper">
</div>
</template>
// File layout.less
.layout-wrapper {
display: flex;
justify-content: center;
}
// File layout.js
import './layout.html';
import './layout.less';
Template.layout.onCreated(function() {
// etc...
});
現在,當您加載模板的layout.js
文件,或者通過預先加載,進口,或者動態的進口,它會插入編譯的少到頁面。
相關問題
- 1. 任何方法將值注入流星的Less文件?
- 2. 流星導入全局變量如何?
- 3. 將流行文件導入流星中的不同文件夾
- 4. 流星內導入svg文件
- 5. 將本地JS文件導入流星
- 6. 將JavaScript文件導入流星項目
- 7. 按需導入LESS文件
- 8. LESS.js - 只能導入一個.less文件
- 9. 是流星雨爲每個「發佈」
- 10. 流星如何使用多個.less文件
- 11. Doxygen:指定每個文件的佈局
- 12. 導入的流星1.4包
- 13. 流星:導入一個JS文件不起作用
- 14. 每個控制器的導軌佈局
- 15. 流星導入錯誤
- 16. 流星鐵路由器佈局模板
- 17. 在div中渲染布局流星js
- 18. HTML5引導流程佈局
- 19. 導入LESS CSS文件與變量
- 20. 不能編譯LESS文件導入CSS
- 21. 流星:Spacebars每個參數
- 22. 每個流星過濾器
- 23. 如何正確導入流星中的js文件
- 24. 從流星中的節點模塊導入css文件
- 25. 流星導入目錄中的所有文件
- 26. 流式佈局中的Java文件
- 27. Symfony 2如何從另一個軟件包導入LESS文件
- 28. 導入/導出流星集合
- 29. BorderLayout的像個流佈局
- 30. DotLess - 如何導入父文件夾中的LESS文件?