2017-08-10 53 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分钟到期时间是适当的。

相关问题