![](/img/trans.png)
[英]Load all css and Js files starting with name main.*.css and main.*.js
[英]Meteor JS javascript files in main.* still don't load correctly. Best practices for load order?
在過去的兩個星期中,我一直在構建Meteor項目,我希望那些曾經使用Meteor並在其中掙扎的人們對裝載順序有所思考。
采取以下模板:
http://bootstraptaste.com/free-one-page-bootstrap-template-amoeba/
所有重要的javascript文件都在index.html的底部引用。 如果您嘗試將其移植到Meteor項目中,那么祝您好運,所有的效果和動畫都可以正常工作,尤其是main.js
的效果和動畫
簡單地將腳本標簽留在底部意味着大量的javascript和jQuery動畫將無法工作,因為在Meteor中完全可以在完全加載DOM之前加載JS文件。 這打破了很多事情。
使用Meteor,任何名為main。*的文件都會在其他所有文件之后加載。
注意,這似乎僅意味着main。*在所有其他內容之后開始加載。 它沒有說明文件何時完成加載。 main.js
的腳本仍然不起作用。
如果我將所有腳本標簽放入它們自己的main.html
,然后將其作為模板附加到index.html
,則動畫仍然無法正常工作。
我試過了
Template.layout.created = function(){$('head')。append(''); }
這也不起作用。
無論如何,還有其他人遇到流星這樣的重大問題嗎? 還有最佳實踐或變通辦法嗎?
通常,您不想在Meteor中使用腳本標簽。 只需將.js文件添加到您的項目中,它們就會自動加載。 標准做法是將jQuery插件等放在lib文件夾中。 流星首先將內容加載到lib文件夾中。
在Meteor中思考這些事情的方式與其他框架不同。 將skrollr.min.js等內容放入項目后,您可以在任何地方調用它。 如果您使用鏈接標記,則css同樣適用。
至於在加載DOM之后要做的事情,您正在尋找
Template.myTemplate.rendered = function ( ) { ... }
第一次渲染DOM后,將調用一次。 .created在加載模板時發生,因此DOM尚不可用。
無需查看示例模板,您就可以進行過多的鏈接,似乎您希望將main.js中的登錄名放入適當模板的呈現回調中。
因此,如果您嘗試在實時演示中重新創建該頁面,則將所有html放入模板中,在項目中擁有所有css和js資源,刪除所有鏈接和腳本標簽,並將main.js內容添加到渲染中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.