2014-11-05 42 views
0

我有一個角度爲js的應用程序,其主容器頁面「index.html」每個版本都更新一次。這是使用Go構建的應用程序引擎中託管的。服務器端提供html視圖和靜態內容的直接服務以及一個restful API。即使修改了html頁面,應用程序引擎也返回304

,直到我推一個新版本的話,我必須努力重新加載頁面,避免受到304

我的app.yaml文件這一切的偉大工程,現在是很基本的:

handlers: 
- url: /.* 
    script: _go_app 

我尚未設置任何緩存策略,因此我瞭解,應用引擎會默認緩存靜態文件10分鐘。

發生了什麼事?

回答

0

我相信我找到了答案。

有兩件事困擾了我這個:

首先,我知道我不能有效,因爲我本來可以處理靜態文件,這是一個工作,我還沒有得到解決,以還,但靜文件通過路由代碼在主要腳本中傳遞,而不是在app中聲明。使用後一種方法可以讓應用引擎完成工作而不是腳本,並希望節省一些寶貴的處理器週期。

其次,我不完全確定index.html在路徑是「/」時是如何提供的,它只是在工作。我知道各種網絡服務器(Apache,IIS等)都有一個默認頁面,而且應用引擎似乎也以相同的方式工作。

所以,當我決定每個請求並不需要任何動態腳本我只想用下面的代碼爲它服務:

http.ServeFile(w, r, r.URL.Path[1:]) 

這神奇變身「/」到「/index.htm」明明的我但似乎有上述的緩存錯誤。我將與Go社區合作。

至於修復,添加頁面的靜態文件的app.yaml中做這項工作:

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

我會確保我添加所有其他靜態文件夾了。

+0

不知道這是否有幫助,但Go使用文件的修改時間來確定是否返回「未修改」狀態。如果該時間戳沒有改變(或者某種程度上Go不能檢索到),那麼可以解釋這個問題......也許看一下服務器返回的頭文件。 – Caleb 2014-11-07 17:02:12

相關問題