2016-09-04 196 views
4

使用jekyll構建個人博客。在本地主機上一切正常。我不想在github上部署它。出於某些原因,我更願意在Google應用引擎上託管。託管jekyll Google App引擎

我跟隨了一些在線指令,並將生成的_site文件夾複製到我的谷歌應用程序引擎項目中。

這是怎麼app.yaml樣子:

application: myblog 
version: 1 
runtime: python27 
api_version: 1 
threadsafe: yes 

error_handlers: 
- file: /404.html 

handlers: 

- url:/
    static_files: _site/index.html 
    upload: _site/index.html 

- url: /(.*) 
    static_files: _site/\1 
    upload: _site/(.*) 


libraries: 
- name: webapp2 
    version: "2.5.2" 

當我在谷歌應用程序引擎在本地運行它,只有中的index.html和其他一些文件顯示。其他人顯示未找到頁面。有什麼我沒有正確實施?

+1

順便說一句,如果它只是一個靜態的網站,很容易將其部署到存儲。您可以將一個域名分配給一個存儲桶,如果是這樣的話 –

回答

1

那麼,我終於搞清楚了。無論如何,這是一個小竅門。

首先在_config.yaml file加:

permalink:   /posts/:title/index.html 

後,運行jekyll serve生成靜態文件夾_site。將帖子文件夾複製到您的應用引擎項目中的_site /。

然後,在你_config.yaml file改變永久鏈接:

permalink:   /posts/:title 

運行jekyll serve產生在_site靜態文件。將生成的整個文件不包括posts文件夾複製到您的應用程序引擎項目的_site /中。

然後,讓你的AppEngine上的app.yaml有點像這樣:

application: myblog 
version: 1 
runtime: python27 
api_version: 1 
threadsafe: yes 


handlers: 
- url: /(.*\.js) 
    mime_type: text/javascript 
    static_files: _site/\1 
    upload: _site/(.*\.js) 

- url: /(.*\.(jpg|png|ico)) 
    static_files: _site/\1 
    upload: _site/(.*\.img) 

- url: /(.*\.css) 
    mime_type: text/css 
    static_files: _site/\1 
    upload: _site/(.*\.css) 

- url: /(.*\.(eot|svg|svgz|otf|ttf|woff|woff2)) 
    static_files: _site/\1 
    upload: _site/(.*\.fonts) 

- url:/
    static_files: _site/index.html 
    upload: _site/index.html 

- url: /(.+)/ 
    static_files: _site/\1/index.html 
    upload: _site/(.+)/index.html 
    expiration: "15m" 

- url: /(.+) 
    static_files: _site/\1/index.html 
    upload: _site/(.+)/index.html 
    expiration: "15m" 

- url: /(.*) 
    static_files: _site/\1 
    upload: _site/(.*) 

#- url: /((tags)|(archive)|(about)|(posts)|(fonts))/ 

libraries: 
- name: webapp2 
    version: "2.5.2" 

看到example澄清