起因
一開始我的blog就選了這種靜態的blog,後來github帳號不小心踩到TOS被封掉就沒了,弄一弄變成wordpress了,但wordpress在Markdown上的支援還是不夠好。故想了兩周還是再把他轉回來。
演變
遷移過程
文章
其實我在wordpress上面也適用markdown寫文章的,所以文章的遷移就只是複製貼上。
轉址
wordpress時期,我有使用sitemap extension做一點簡單的SEO,所以可以在google Search Console看到有一些網址是有被google索引起來的。 在Google 搜尋結果裡面雖然排名沒有很前面,但是總不能讓人點進去都是404,所以這邊稍微翻了一下hugo 的doc,比較少提到這點, 只有在這邊有一點點Automatic loading,後來去看到Hugo有推薦的部屬方式Netlify上有提供redirect的方式,所以就朝這方向去查。
我後來用cloudflare pages做部屬
在Cloudflare 上 ,有提供Redirect,做網頁的轉址,只要在網站上提供static file 給cloudflare看
內容為
[source] [destination] [code?]
[來源相對地址] [目標相對地址] [轉址 HTTP code]
e.g.
/home/ / 308
就可以做redirect
資料夾格式
+---archetypes
+---content
| +---about
| \---posts
+---data
+---layouts
| \---shortcodes
+---static
_redirects 要放在static底下
Cloudflare有支援一些placeholder,splats 去做簡單的redirect規則,可以自己看文件XD
部屬
cloudflare page的部屬我目前的流程
- 在電腦上建立專案並做第一次部屬
wrangler pages deploy [DIRECTORY] [OPTIONS]
- wrangler會提示你要建立新專案還是使用既有專案
- 然後再詢問你要使用哪個git branch作為production
- 寫進Jenkinsfile
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
pipeline { agent any stages { stage('Checkout') { steps { script { sh 'git submodule init' sh 'git submodule update --recursive' } } } stage('Hugo Building') { steps { script { sh 'hugo' } } } stage("Cloudflare Pages Deploy..."){ steps{ echo 'Deploying....' nodejs('LTS') { withCredentials( [string(credentialsId: '2c1e51e1-f360-4e21-95d2-bf710722b8c6', variable: 'APITOKEN')]) { sh 'CLOUDFLARE_API_TOKEN=$APITOKEN wrangler pages deploy public --project-name blogs --branch=master' } } } } } post { always { cleanWs() } } }
CLOUDFLARE_API_TOKEN=$APITOKEN wrangler pages deploy public --project-name blogs --branch=master
--branch=master 是為了讓他使用master branch 這個參數去部屬,我Jenkins 沒有很熟,拉下來在部屬的時候他都用Head去Deploy,上去都只會在Preview env,故新增此參數
有知道為什麼的在留言跟我講一下 謝謝
- Push to Git
- Jenkins pipeline 部屬
有問題可以在下方utterances留言喔