Travis CI 部署遇到的問題

最近研究nuxt服務端渲染的時候,看到nuxt的幾種部署方式,因爲nuxt打包的靜態文件可以直接放在GitHub上面,然後 TravisCI跟GitHub又很親切,就選擇了TravisCI部署。然後就走上了研究TravisCI的不歸路。

Travis CI 部署到GitHub項目gh-pages分支上,打開頁面發現引用資源404?

在研究nuxt的這一篇文章 《如何部署至GitHub Pages?》的時候,所有操作都按照文章提示來,發現怎麼部署都失敗,然後仔細看自己頁面資源引用的路徑,並沒有實現文章中的router base 的路徑配置。

router: {
    base: '/<repository-name>/'
}

然後自己反覆上傳驗證,終於發現問題。在官網給出的TravisCI配置中:

language: node_js
node_js:
  - "8"

cache:
  directories:
    - "node_modules"

branches:
  only:
  - master

install:
  - npm install
  - npm run generate # 這個需要改爲npm run generate:gh-pages

script:
  - echo "Skipping tests"

deploy:
  provider: pages
  skip-cleanup: true
  github-token: $GITHUB_ACCESS_TOKEN  # Set in travis-ci.org dashboard, marked secure https://docs.travis-ci.com/user/deployment/pages/#Setting-the-GitHub-token
  target-branch: gh-pages
  local-dir: dist
  on:
    branch: master

需要把install中的 npm run generate 改爲npm run generate:gh-pages,這樣就可以走gh-page分支的打包了。不知道是不是還有別的解決方法,剛接觸也不是特別瞭解。

Travis CI 如何部署服務器?

可以參考這篇文章Travis CI 自動化部署博客

Travis CI 部署服務器如何實現免密登錄?

搞完GitHub Pages靜態部署,然後就想部署服務端,畢竟接觸nuxt的目的就是實現服務端渲染。
然後找了一個比較坑的文章... 每次Travis部署後,都要求輸入一個密碼。卡在了免密登錄的地方卡了很久很久... 在此多謝 @X1nFLY 的幫忙,很耐心的幫我解決了問題。

其實免密登錄跟trvais並沒有什麼關係,只要你本地 ssh連接實現免密登錄,那Travis部署也可以的。

需要在終端輸入:

ssh-copy-id username@your-server-ip

ssh-copy-id 將本機的公鑰複製到遠程機器的authorized_keys文件中,ssh-copy-id也能讓你有到遠程機器的home, ~./ssh , 和 ~/.ssh/authorized_keys的權利,這時候只要你終端輸入:

ssh username@your-server-ip

再次連接就不用再輸入密碼啦~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章