The page build failed for the master
branch with the following error
問題描述
看到這封郵件,一臉懵逼,本地執行 gitbook
服務是正常渲染的,控制檯並沒有任何報錯,誰知道推送到 github
時就報錯了!
登入到 github
網站檢視網站原始碼已經同步過來了,但是靜態網站無法同步,本地實在找不到任何報錯資訊,這讓我如何是好?
再看 github
反饋用的郵件中說道,如有問題可以回覆郵件(If you have any questions you can contact us by replying to this email.).
然後死馬當活馬醫,嘗試闡釋了我的問題,請求幫助定位錯誤日誌,沒想到當天下午就收到 github
的回覆郵件,提供瞭解決辦法!
問題是由於 Liquid Warning: Liquid syntax error (line 334)
錯誤,然而我確定這部分程式碼是沒有任何問題的,因為這是我改造 gitbook-plugin-tbfed-pagefooter
外掛時的一段程式碼,反覆確認後發現並沒有複製貼上出錯啊!
var moment = require('moment');
module.exports = {
book: {
assets: './assets',
css: [
'footer.css'
],
},
hooks: {
'page:before': function(page) {
var _label = '最後更新時間: ',
_format = 'YYYY-MM-DD',
_copy = 'powered by snowdreams1006'
if(this.options.pluginsConfig['tbfed-pagefooter']) {
_label = this.options.pluginsConfig['tbfed-pagefooter']['modify_label'] || _label;
_format = this.options.pluginsConfig['tbfed-pagefooter']['modify_format'] || _format;
var _c = this.options.pluginsConfig['tbfed-pagefooter']['copyright'];
_copy = _c ? _c + ' all right reserved,' + _copy : _copy;
}
var _copy = '<span class="copyright">'+_copy+'</span>';
var str = ' \n\n<footer class="page-footer">' + _copy +
'<span class="footer-modification">' +
_label +
'\n{{file.mtime | date("' + _format +
'")}}\n</span></footer>';
str += '\n\n<link rel="stylesheet" href="https://unpkg.com/gitalk/dist/gitalk.css">'+
'\n\n<script src="https://unpkg.com/gitalk@latest/dist/gitalk.min.js"></script>'+
'\n\n<div id="gitalk-container"></div>'+
'\n\n<script src="https://snowdreams1006.github.io/gitalk-config.js"></script>';
page.content = page.content + str;
return page;
}
},
filters: {
date: function(d, format) {
return moment(d).format(format)
}
}
};
複製程式碼
來源於
gitbook-plugin-tbfed-pagefooter
外掛的index.js
檔案,這裡為了相容gitalk
外掛而整合了相關程式碼,詳情請參考 gitalk 評論外掛
解決方案
根據郵件回覆,定位到出錯程式碼片段,真的沒發現有什麼問題啊?
既然已經確定不是我的問題,那很可能就是 github
的問題了,郵件中推薦我使用 Jekyll
進行構建網站,不不不!
既然已經選擇 gitbook
搭建靜態網站,那就沒必要再使用 Jekyll
,我可不想那麼麻煩!
If you are not using Jekyll you can disable it by including a .nojekyll file in the root of your repository.
所以我不妨試試新增 .nojekyll
檔案,說不定就好使了呢!
$ touch .nojekyll
$ git add .nojekyll
$ git commit -m "add .nojekyll"
$ git push
複製程式碼
天不負我!竟然真的好使了,再也沒有收到 github
的報錯郵件反饋了,原始碼和網站都正常更新了!
小結
據我推測,可能是 github
誤認為我的網站是使用 Jekyll
工具構建的,實際上,是使用 gitbook
構建的!
因此,增加 .nojekyll
檔案禁用 Jekyll
工具,自然不會再受相關語法限制而報錯了.
所以,遇到問題時,不僅要多思考,更應該尋求官方人員的幫助,即使不回你,你也要嘗試一下!