AngularJS + GAE不更新HTML

时间:2014-10-24 09:36:10

标签: html angularjs google-app-engine

编辑:结果显示所投放的版本已过时 - 更新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>

1 个答案:

答案 0 :(得分:0)

也许您之前为.html文件设置了更长的缓存设置?在这种情况下,它们可能已经缓存在Google前端服务器上。如果您查看浏览器网络检查器中的响应标头,您可以看到它们是否确实已缓存,也可能是它们的年龄。您可能需要等到它们从缓存中逐出,然后才能再次看到它们的更新。

同时,尝试使用不同的文件名,看看是否有效。

您可以尝试的另一个技巧是为文件名添加时间戳。 因此,您可以申请'users.html'

,而不是请求'users.html?cachebuster=' + +new Date()