簡體   English   中英

當您僅將一行代碼包含在Rails應用程序中時,為什么將ruby gem用於引導程序?

[英]Why use ruby gem for bootstrap when you can just one line include bootstrap in a rails app?

當您僅將一行代碼包含在Rails應用程序中時,為什么將ruby gem用於引導程序?

我可以在我的application.html.erb文件中的這一行使用引導程序: <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" integrity="sha384-WskhaSGFgHYWDcbwN70/dfYBj47jz9qbsMId/iRN3ewGhXQFZCSftd1LZCfmhktB" crossorigin="anonymous">

人們為什么使用像https://github.com/seyhunak/twitter-bootstrap-rails之類的寶石?

沒有任何完整性的聲明,以下是您可能要通過gem包含Bootstrap的幾種不同原因。

首先,它允許您以比通過引用包含庫更強大的方式自定義庫。 如果瀏覽鏈接項目的自述文件,您會注意到可以使用LESS或SASS,並覆蓋Bootstrap中的各個變量。 例如,這使創建自己的Bootstrap主題以及創建干凈且可維護的CSS類變得更加容易。

其次,gem通常提供的功能遠遠超過僅包含Bootstrap的功能。 通過在Rails中提供生成器或覆蓋模板,它們使搭建新頁面變得容易。 而且它們有時甚至帶有針對某些Bootstrap功能的自定義Javascript實現,以使其更易於與Rails集成。 例如,只需再次查看鏈接庫及其用於導航欄的幫助器方法:

<%= nav_bar do %>
     <%= menu_item "Home", root_path %>

    <%= drop_down "Products" do %>
        <%= menu_item "Latest", latest_products_path %>
        <%= menu_item "Top Sellers", popular_products_path %>
        <%= drop_down_divider %>
        <%= menu_item "Discount Items", discounted_products_path %>
    <% end %>

    <%= menu_item "About Us", about_us_path %>
    <%= menu_item "Contact", contact_path %>
<% end %>

太酷了。 樣板代碼少得多,無需擔心...

最后,您擁有更多的控制權。 您不依賴CDN,可以將Bootstrap緊密集成到資產管道中。 Imo,不過,這是一把兩刃劍。 一方面,通過排除不需要的庫部分,可以獲得比Bootstrap提供的CSS文件更小的文件。 因為在Bootstrap中覆蓋變量更容易,所以您自己的CSS也可能要小得多。 另一方面,用戶可能已經從CDN獲得了Bootstrap的緩存版本,這使整個工作減少了樣式表的大小。

當然也有缺點,例如,更新可能需要更長的時間才能到達。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM