當我清除我的主題註冊表時,Drupal運行並構建了一個很好的整合css文件,但它爲不同的節點/頁面類型執行此操作,以便獲取所述文件的多個實例。我在另一個question I asked(和回答)中提到過這個問題,但我的問題是,Drupal如何推斷需要添加到統一版本的css文件?必須有許多不同的地方來控制在特定節點上出現哪些模塊,因此構建另一個css文件的規則是什麼?在刷新我的主題緩存時,Drupal如何將模塊css文件添加到整合文件中?
3
A
回答
3
嗯,這是不是函數的一個簡單鏈跟隨,但我想我已經到了那裏......
每次頁面「刷新」(即從頭開始建立,而不是從緩存中提供)在頁面構建過程中添加了drupal_add_css()
的所有CSS文件都會彙總並保存到單個文件中,該文件作爲該頁面的<link>
標記返回。
在drupal_add_css()
下面一行決定了聚合CSS文件的名稱是什麼:
$filename = 'css_'. md5(serialize($types) . $query_string) .'.css';
$types
在這方面是所有的CSS文件的數組當前頁面生成過程中使用drupal_add_css()
增加。聚合CSS的文件名包含一個序列化的字符串$types
,這意味着任何其他添加了與該文件相同的CSS文件的頁面都將接收完全相同的文件名,從而加載相同的CSS文件。
所以基本上,聚合函數是針對每一個頁面構建運行的,因此每次添加到該頁面的所有CSS都將被聚合。如果某些頁面碰巧使用相同的模塊,那麼它們將自動被提供與上面的PHP代碼片段中定義的相同的CSS文件。當您將其與頁面緩存結合使用時,您可以在不同頁面上的HTML源代碼中找到結果。
希望有道理!
+0
這是非常有意義的。謝謝@Clive! –
相關問題
- 1. 將CSS文件合併到一個緩存的文件中
- 2. drupal主題:如何在我的主題的.info文件中包含多個css文件/ js文件?
- 3. 如何將css添加到.scss文件或主題
- 4. 刷新整個CSS文件
- 5. Git:將完整的文件樹添加到主文件中
- 6. 將一個CSS文件加載到WordPress中的新主題
- 7. 將url參數添加到asp主題文件夾中的css文件
- 8. 如何將php文件添加到wordpress主題添加標準文件?
- 9. 如何將新文件添加到我的Git存儲庫?
- 10. html文件緩存模塊
- 11. 如何在我的前端模塊中使用luma主題css類文件
- 12. 如何在WordPress主題中添加2個CSS文件?
- 13. 將JavaScript文件的整個文件夾添加到HTML5應用緩存
- 14. 如何使Drupal 7模塊在主題文件夾中使用.tpl.php模板
- 15. 如何處理GWT主題CSS文件的緩存
- 16. 如何將css和javascript文件添加到Odoo 8中的自定義模塊?
- 17. Drupal:如何主題模塊
- 18. 將整個文件夾添加到HTML5應用高速緩存
- 19. 如何在某個文件更改時刷新緩存?
- 20. css到scss遷移 - 如何整合通過npm模塊包含的css文件?
- 21. 如何將自定義js文件添加到pixture_reloaded Drupal 7主題?
- 22. 如何將文件上傳到drupal模塊中的文件夾位置?
- 23. 從drupal模塊打印主題文件中的變量
- 24. Drupal主題不會讀取CSS文件
- 25. 如何始終刷新由AJAX加載文件,避免了緩存的文件
- 26. 如何刷新緩存的Drupal頁面?
- 27. 我需要將子模塊文件夾添加到.gitignore中嗎?
- 28. 如何將ID標籤全局添加到整個CSS文件?
- 29. 如何在.net中緩存控件,js文件和css文件?
- 30. Drupal刷新頁面需求緩存也刪除javascript文件
+1非常有趣的問題,只是爲了調查... – Clive