2017-08-10 96 views
2

通常,當我對.js或.css文件進行本地更改,然後部署應用程序時,文件將被跳過。這是怎麼回事?爲什麼GAE在部署時跳過更改的文件?

例如,假設我編輯:

public_html/www/account/dashboard/dashboard.css

當我部署我看到在我的日誌:

`Skipping upload of [public_html/www/account/dashboard/dashboard.css] 

這裏是我的app.yaml的skip_files規則

skip_files: 
    - ^(.*/)?#.*#$ 
    - ^(.*/)?.*~$ 
    - ^(.*/)?.*\.py[co]$ 
    - ^(.*/)?.*/RCS/.*$ 
    - ^(.*/)?\..*$ 
    - ^.*node_modules(/.*)? 
    - ^data/.*$ 
    - ^public_html/data/.*$ 

並不確定這是否相關,但是這裏是一個static_files規則aking我的css application_readable:

- url: /(.*\.(gif|png|jpg|jpeg|js|html|css|json|tpl))$ 
    static_files: public_html/www/\1 
    upload: public_html/www/.*\.(gif|png|jpg|js|html|css|json|tpl)$ 
    application_readable: true 

回答

0

終於在文檔中找到了答案。它與靜態文件緩存到期有關。這聽起來好像沒有辦法立即清除靜態文件緩存。最好的辦法是將default_expiration設置爲一個很短的時間段,我的設置爲7天。

下面是該文檔的鏈接:

https://cloud.google.com/appengine/docs/standard/python/config/appref#static_cache_expiration

下面是從文檔

到期時間將在緩存控制被髮送的說明和Expires HTTP 響應頭文件,因此這些文件可能會被用戶的瀏覽器以及中間緩存代理服務器 (如Internet服務提供商)緩存。在給定文件的 給定過期時間後,即使用戶清除了自己的瀏覽器高速緩存,通常也無法將其從中間高速緩存中清除出 。 重新部署新版本的應用程序不會重置任何緩存。 因此,如果您打算修改一個靜態文件,它應該有一個 短(不到一小時)到期時間。在大多數情況下,默認的 10分鐘到期時間是適當的。

相關問題