2014-10-24 3 views
0

EDIT: Оказалось, что поддерживаемая версия устарела - обновление версии в app.yaml фактически не обновляет обслуживаемую версию.AngularJS + GAE, не обновляющий HTML

Как говорится в заголовке, я пытаюсь загрузить изменения в приложение 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 

И пару примеров HTML ссылки в app.js:

// 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 с угловыми маршрутами.

ответ

0

Возможно, у вас ранее была более длинная настройка кеша для файлов .html? В этом случае они уже могут быть кэшированы на серверах внешнего интерфейса Google. Если вы посмотрите на заголовки ответов в сетевом инспекторе вашего браузера, вы увидите, действительно ли они кэшированы и, возможно, их возраст. Возможно, вам придется подождать, пока они не будут выселены из кеша, прежде чем вы сможете увидеть их снова.

Между прочим, попробуйте с разными именами файлов и посмотрите, работает ли это.

Еще один трюк, который вы можете попробовать, - добавить временную метку к имени файла. Таким образом, вместо запроса 'users.html' вы можете запросить 'users.html?cachebuster=' + +new Date()

+0

Первоначально у них не было кеша, но оказалось, что сервер движка приложений обслуживает более старую версию сайта - он не автоматически заменяет изменение версии, поэтому вы должны установите это вручную. Кроме того, я добавил шаг в мой процесс сборки, чтобы скомпилировать шаблоны в модуль шаблона, который имеет угловые нагрузки. – TyrantWave

Смежные вопросы