编辑:结果显示所投放的版本已过时 - 更新app.yaml
中的版本并未实际更新投放的版本。
正如标题所说,我试图将AngularJS应用程序的更改上传到Google App Engine(Python,如果重要的话)。
但是每个视图的引用HTML文件都不会更新,我不确定原因。
这里是app.yaml
:
- url: /site/(.*\.(js|css|png|ico|txt))$
static_files: site/dist/\1
upload: site/dist/.*\.(js|css|png|ico|txt)$
login: required
secure: always
- url: /site/(.*\.html)$
static_files: site/dist/\1
upload: site/dist/.*\.html$
login: required
secure: always
expiration: '30s'
- url: /site/.*
static_files: site/dist/index.html
upload: site/dist/index.html
login: required
secure: always
app.js
中引用的几个HTML示例:
// Routes
$routeProvider
.when('/users', {
templateUrl: 'users/users.html',
controller: 'UserCtrl',
activeTab: 'users',
reloadOnSearch: false
})
.when('/users/profile/:userId', {
templateUrl: 'users/profile.html',
controller: 'UserProfileCtrl',
activeTab: 'users'
})
.when('/users/new', {
templateUrl: 'users/create.html',
controller: 'UserCreateCtrl',
activeTab: 'users'
})
因此html位于dist/users/__.html
或适当,app.js
位于dist/
下
更新这些文件,然后进行GAE更新不会更新html。我已将缓存过期设置为30秒,仍未更新。
我可以采取哪些措施强制上传所有html更改吗?
JS / CSS文件在构建过程中附加了一个版本号,因此它们工作正常,但据我所知,对于带有角度路径的html,不可能做到这一点。 / p>答案 0 :(得分:0)
也许您之前为.html文件设置了更长的缓存设置?在这种情况下,它们可能已经缓存在Google前端服务器上。如果您查看浏览器网络检查器中的响应标头,您可以看到它们是否确实已缓存,也可能是它们的年龄。您可能需要等到它们从缓存中逐出,然后才能再次看到它们的更新。
同时,尝试使用不同的文件名,看看是否有效。
您可以尝试的另一个技巧是为文件名添加时间戳。
因此,您可以申请'users.html'
'users.html?cachebuster=' + +new Date()