文章

在 Ruby On Rails 中使用 bootswatch flatly 主题

在 Ruby On Rails 中使用 bootswatch flatly 主题

看了不少管理主题,回到本初,使用简单简洁的 bootswatch 主题。来吧,直接进入正题。

0、环境

软件 版本
Ruby 2.5.5
Rails 5.2.2.1

1、建一个新的 rails 项目

假设你也不用 turbolinks。

1
rails new bootswatchtest --skip-turbolinks

2、修改 Gemfile

增加如下:

1
2
3
gem 'bootstrap', '~> 4.3.1'
gem 'jquery-rails'
gem "bootswatch", github: "thomaspark/bootswatch"

执行:bundle install

3、初始化路径中加载 bootswatch 资源目录

在 app -> config -> initializers 下,新建文件,比如叫:bootswatch.rb,文件内容:

1
Rails.application.config.assets.paths += Gem.loaded_specs["bootswatch"].load_paths

4、修改 application.css 文件

修改 app -> asset -> stylesheets -> application.css 文件,在 “require_self” 行下增加一行:

1
*= require bootswatch_flatly

在 app -> asset -> stylesheets 目录下,增加文件:bootswatch_flatly.scss,文件名与增加的哪一行相同,内容为:

1
2
3
4
5
6
7
@import "flatly/variables";

// import original bootstrap
@import "bootstrap";

@import "flatly/bootswatch";

其中 flatly ,可以根据喜好,修改为 bootswatch 其他主题名称。

5、修改 application.js 文件

修改 app -> asset -> javascripts -> application.js 文件,在 “//= require_tree .” 行下增加:

1
2
3
//= require jquery3
//= require popper
//= require bootstrap-sprockets

这一步是为了使用 bootstrap 的 jquery。

6、测试主题使用

新建 controller:

1
rails g controller home index

打开 app -> views -> home -> index.html.erb 文件,增加测试导航条:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<nav class="navbar navbar-expand-lg navbar-dark bg-primary">
  <a class="navbar-brand" href="#">Navbar</a>
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarColor01" aria-controls="navbarColor01" aria-expanded="false" aria-label="Toggle navigation">
    <span class="navbar-toggler-icon"></span>
  </button>

  <div class="collapse navbar-collapse" id="navbarColor01">
    <ul class="navbar-nav mr-auto">
      <li class="nav-item active">
        <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Features</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Pricing</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">About</a>
      </li>
    </ul>
  </div>
</nav>

<ul class="nav nav-pills">
  <li class="nav-item">
    <a class="nav-link active" href="#">Active</a>
  </li>
  <li class="nav-item dropdown">
    <a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">Dropdown</a>
    <div class="dropdown-menu">
      <a class="dropdown-item" href="#">Action</a>
      <a class="dropdown-item" href="#">Another action</a>
      <a class="dropdown-item" href="#">Something else here</a>
      <div class="dropdown-divider"></div>
      <a class="dropdown-item" href="#">Separated link</a>
    </div>
  </li>
  <li class="nav-item">
    <a class="nav-link" href="#">Link</a>
  </li>
  <li class="nav-item">
    <a class="nav-link disabled" href="#">Disabled</a>
  </li>
</ul>

运行 rails 应用,并在浏览器中查看是否已经使用了你的主题。

6、 题外话

如果不幸你也碰到了这个错误:

Puma caught this error: Error loading the ‘sqlite3’ Active Record adapter. Missing a gem it depends on? can’t activate sqlite3 (~> 1.3.6), already activated sqlite3-1.4.0. Make sure all dependencies are added to Gemfile. (LoadError)

可以在 Gemfile 中,将 sqlite 版本降为:1.3.6:

1
gem 'sqlite3', '~> 1.3.6'

bootswatch 主题好耶,bootswatch 主题棒!

本文由作者按照 CC BY 4.0 进行授权