
本文與本系列之前的文章非常相似,但這次我們將使用Tailwind框架作為無類CSS框架。
創(chuàng)建新的Rails應(yīng)用
-
rails serve
指令前的 time
用來顯示指令執(zhí)行的總時(shí)間。以下範(fàn)例耗時(shí)47秒。
<code>$ rails -v
Rails 8.0.0
$ time rails new classless-css-tailwind
...
real 0m47.500s
user 0m33.052s
sys 0m4.249s</code>
Rails 8 基於其「No Build」理念,預(yù)設(shè)使用Propshaft作為資源管道庫和Importmap作為JavaScript庫。 Importmap不執(zhí)行任何JavaScript處理。
使用VSCode或您喜歡的編輯器開啟專案
<code>$ rails -v
Rails 8.0.0
$ time rails new classless-css-tailwind
...
real 0m47.500s
user 0m33.052s
sys 0m4.249s</code>
了解Rails預(yù)設(shè)版面配置 app/views/layouts/application.html.erb
展開…
- 遵循約定優(yōu)於配置(CoC)原則,Rails使用`application.html.erb`作為預(yù)設(shè)佈局來渲染所有頁面;
- Rails 8中的原始文件內(nèi)容應(yīng)與以下內(nèi)容相同或相似:
<code>$ cd classless-css-tailwind && code .</code>
-
<head>
標(biāo)籤內(nèi)包含頁面渲染和正常運(yùn)作的重要結(jié)構(gòu)元素。 <head>
用於包含元資料和重要資源,這些資源有助於配置頁面的行為(使用JavaScript)、外觀(使用CSS)、與其他系統(tǒng)和服務(wù)的關(guān)聯(lián)以及安全性設(shè)置,例如CSRF和CSP保護(hù);
- 頁面的主要內(nèi)容將透過ERB標(biāo)籤在
<body>
內(nèi)渲染。此標(biāo)籤作為整合點(diǎn),用於包含Rails動(dòng)態(tài)渲染的視圖內(nèi)容;
使用pages
控制器和html_test_1
、html_test_2
、html_test_3
和html_test_4
操作產(chǎn)生測(cè)試頁
展開…
『`bash
$ rails g controller pages html_test_1 html_test_2 html_test_3 html_test_4
create app/controllers/pages_controller.rb
route get "pages/html_test_1"
get "pages/html_test_2"
get "pages/html_test_3"
get "pages/html_test_4"
invoke erb
create app/views/pages
create app/views/pages/html_test_1.html.erb
create app/views/pages/html_test_2.html.erb
create app/views/pages/html_test_3.html.erb
create app/views/pages/html_test_4.html.erb
invoke helper
create app/helpers/pages_helper.rb
```
- 由於在建立控制器和操作時(shí)也添加了路由,因此可以透過以下連結(jié)存取任何已建立的操作:
localhost:3000/pages/html_test_1
localhost:3000/pages/html_test_2
localhost:3000/pages/html_test_3
localhost:3000/pages/html_test_4
使用VSCode開啟config/routes.rb
檔案
- 在文件末尾添加以下行,將頁面根目錄定向到先前創(chuàng)建的
pages
控制器和html_test_1
操作。這樣,造訪您的網(wǎng)站或系統(tǒng)時(shí),首先顯示的頁面將是pages
控制器的html_test_1
頁面。否則,將顯示Rails的預(yù)設(shè)頁面。
<title></title><meta content="width=device-width,initial-scale=1" name="viewport"></meta><meta content="yes" name="apple-mobile-web-app-capable"></meta><meta content="yes" name="mobile-web-app-capable"></meta><link href="/icon.png" rel="icon" type="image/png"></link><link href="/icon.svg" rel="icon" type="image/svg+xml"></link><link href="/icon.png" rel="apple-touch-icon"></link>
- 如果在建立控制器時(shí)傳遞了
--skip-routes
參數(shù),則可以忽略為建立的操作新增路由。完整的命令將變成rails g controller pages html_test_1 html_test_2 html_test_3 html_test_4 --skip-routes
顯示Rails路由
展開…
使用終端,您可以指定控制器(使用`-c`)來顯示路由,例如`pages`控制器:
<code>$ rails -v
Rails 8.0.0
$ time rails new classless-css-tailwind
...
real 0m47.500s
user 0m33.052s
sys 0m4.249s</code>
或者,您可以使用以下命令顯示所有路由:
<code>$ cd classless-css-tailwind && code .</code>
- 您也可以使用位址
http://127.0.0.1:3000/rails/info/routes
透過瀏覽器存取路由。請(qǐng)勿忘記使用專案根目錄中的bin/dev
或標(biāo)準(zhǔn)rails server
啟動(dòng)開發(fā)伺服器。開發(fā)伺服器會(huì)「監(jiān)聽」JavaScript檔案和CSS檔案的更改,以執(zhí)行必要的處理以將其提供給使用者。
- 為了讓這些檔案的變更能夠立即在瀏覽器中執(zhí)行和查看,需要安裝像Rails Live Reload這樣的gem。
我們將建立四個(gè)包含HTML內(nèi)容的頁面來測(cè)試CSS樣式。
Ruby on Rails預(yù)設(shè)使用MVC(模型-視圖-控制器)架構(gòu)來啟動(dòng)專案的組織。大部分程式碼都組織在以下資料夾中:
- 與領(lǐng)域/業(yè)務(wù)邏輯和資料相關(guān)的程式碼應(yīng)保存在
app/models
資料夾中;
- 與顯示相關(guān)的程式碼(HTML、JSON、XML等)將位於
app/views
資料夾中;
- 與請(qǐng)求生命週期相關(guān)的程式碼將位於
app/controllers
資料夾中;
插入html_test_1
頁面的內(nèi)容
展開…
- 訪問連結(jié)https://github.com/dbohdan/classless-css/blob/master/screenshot-page.html並複製``標(biāo)籤內(nèi)的所有內(nèi)容,如下圖所示
<code>$ rails -v
Rails 8.0.0
$ time rails new classless-css-tailwind
...
real 0m47.500s
user 0m33.052s
sys 0m4.249s</code>
插入html_test_2
頁面的內(nèi)容
展開…
- 訪問連結(jié)https://gist.github.com/tommaitland/5865229並複製`頁面的內(nèi)容
html_test_3
展開…
訪問連結(jié)https://github.com/cbracco/html5-test-page/blob/master/index.html並複製``標(biāo)籤後的所有內(nèi)容,其中包含文字`
`
以上是使用 Tailwind 作為無類別 CSS 框架的快速 Ruby on Rails 前端的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!