簡體   English   中英

安裝Bootstrap gem后,如何覆蓋/更改Ruby on Rails Spree應用程序的布局?

[英]How to override/change lay-out of Ruby on Rails spree app after installing Bootstrap gem?

我有一個通過安裝spree_bootstrap gem的Spree Commerce應用程序

gem 'spree_bootstrap', github: 'jdutil/spree_bootstrap'

到Gemfile。

現在在主頁上,我所有熟悉的引導div都為<div class="container row"><ul id="main-nav-bar" class="inline">

我是Rails的新手,我想通過添加自己的自定義導航欄和其他調整來更改布局母版頁。 不幸的是,application.html.rb幾乎是一個空頁面,我認為那不是進行更改的頁面。

我的問題是:如何覆蓋或更改標准div值? 我沒有本地文件。 我聽說過將Deface用作工具,但我不知道如何使用它。

我希望這里的人可以提供更多有關更改標准Bootstrap Spree應用程序的見解。

創建文件app/views/spree/layouts/spree_application.html.erb 復制並粘貼內容,然后根據需要編輯:)

對其他任何您想重新設置樣式的Spree視圖和局部重復以上步驟。 如果您想知道需要創建的路徑以及某個視圖或部分視圖的內容,請查看其GitHub存儲庫中app/views/spree文件夾。

在看到任何更改之前,您可能需要重新啟動服務器。

首先,我認為這個問題在其他幾個SO問題中有所重復。 昨天我確實處理了這個問題,所以我想我會給出一個答案。

您應該查看污損的寶石(Spree用於允許您覆蓋視圖的東西)。 這是一個有關如何替換 <ul id="main-nav-bar" class="inline">的內容的示例,假設文件是app/views/spree/shared/_nav_bar.html.erb 請注意,您必須找到要實際使用的選擇器的文件:

# app/overrides/my_override.rb
Deface::Override.new(virtual_path: "spree/shared/nav_bar",
                     name: "my_navbar",
                     replace: "ul#main-nav-bar") do
  <<-HTML
  <nav class='navbar navbar-default navbar-fixed-top'>
    <div class='container'>
      ...
    </div>
  </nav>
  HTML
end

如果您需要更多幫助,則可能需要查看他們的文檔 絕對不是一個好主意,就是復制並粘貼gem的內容以覆蓋。

暫無
暫無

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

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