2012-11-29 19 views
0

這看起來好像很簡單,但我不能將我的.html文件移動到他們自己的目錄中,以尖叫停頓。他們工作文件,如果留在根文件夾。將HTML文件移動到他們自己的Google App Engine目錄中(使用Jinja2模板) - 錯誤13

這裏就是我試圖做

<root> 
|_ app.yaml 
|_ main.py 
|_ ...etc 
|_<layout> 
    |_ base.html 
    |_ home.html 
    |_ ...etc 

添加以下到我的app.yaml文件:

- url: /layout 
    static_dir: layout 

我想通,會做它,因爲沒有別的可以使用此目錄我假設HANDLERS中的訂單無關緊要。這裏是萬一有人我的完整處理部分斑點明顯的東西我錯過了(我承認我沒有這個非常瞭解,儘管通過文件和其他問題已經觸輪這裏涉及到的靜態文件和目錄):

handlers: 
- url: /favicon.ico 
    static_files: favicon.ico 
    upload: favicon.ico 

- url: /layout 
    static_dir: layout 

- url: /stylesheets 
    static_dir: stylesheets 

- url: .* 
    script: main.app 

我試過混合了處理程序的順序,但錯誤總是相同的:

IOError: [Errno 13] file not accessible: 'E:\\Users\\Steve\\Documents\\test_gae\\test\\layout\\home.html' 

任何建議,將不勝感激,乾杯

AN SWER,根據voscausa的回答:這些HTML文件是模板,而不是靜態頁面。刪除'佈局'的靜態處理程序完全解決了這個問題。

回答

2

如果你使用Jinja2,你不需要將/ layout文件夾放到你的app.yaml中,因爲你不提供靜態模板,而是用jinja渲染模板並寫入響應HTML。

所以這個問題必須在你的代碼中。看看模板路徑。

處理程序的順序很重要。 url模式從上到下進行匹配。這意味着

- url: /.* 
    script: main.app 

總是最後的處理程序!

+0

謝謝...這是非常明顯的,我覺得有點愚蠢的錯過...當然,他們不是靜態的。我讓自己的腦子卡住了他們是HTML文件的想法,所以他們必須以靜態方式交付,但當然,他們是模板。感謝堆。 – Steve

相關問題