Переименование index.html в Google App Engine - PullRequest
0 голосов
/ 04 ноября 2019

Хорошо, позвольте мне 1-й прийти чистым. Я ошибочно добавил дату истечения 365 дней в мой файл index.html. Теперь я внес изменение в файл JS, который изменил имя импорта в моем index.html, и теперь он пытается импортировать неправильный файл. Упс.

Итак, я думаю, давайте изменим имя файла по умолчанию на другое, не кэшированное.

То, что у меня сейчас

В моем AngularВ проекте я изменил все настройки здания, и теперь мой index.html файл называется main.html. Даже сам файл называется main.html, и, проверяя в моей папке dist, нет index.html только main.html.

Я разместил сайт в Google App Engine, и это командаЯ использовал для развертывания после сборки.

gcloud app deploy app.yaml --quiet --project=<project-name>

Вот мой app.yaml

api_version: 1

env: standard
runtime: python27
service: <service-name>
threadsafe: yes


handlers:

- url: /(.*\.(css|eot|gz|html|ico|js|map|png|jpg|jpeg|svg|ttf|woff|woff2|pdf|gif))
  static_files: dist/browser/\1
  upload: dist/browser/(.*\.(css|eot|gz|html|ico|js|map|png|jpg|jpeg|svg|ttf|woff|woff2|pdf|gif))
  expiration: "365d"

- url: /.*
  static_files: dist/browser/main.html
  upload: dist/browser/main.html
  secure: always
  expiration: "0s"

skip_files:
 ## bunch of files

Проблема:

Кажется, что Googleвсе еще подает index.html, хотя, если честно, я не совсем уверен, как проверить. Как сказать ему, чтобы он служил main.html файлом по умолчанию?


Редактировать 1

Когда я посещаю www.my-domain.com, он по-прежнему обслуживает старый index.html. Но когда я перехожу на <project>.appspot.com (URL-адрес Google), к которому я не был, и я предполагаю, что ни у кого уже не было достаточно времени (не в кеше), это работает.

Похоже, что изменение имени index.html не имеет значения для провайдеров кеша, только если они получают данные из /. Я задал еще один связанный вопрос о перенаправлении на другой URL / => app

( Перенаправить базу `/` путь к папке в Google App Engine )


Редактировать 2

Используя метод здесь (https://www.maxlaumeister.com/blog/how-to-use-google-app-engine-as-a-free-redirect-server/) Я смог заставить работать перенаправление, поэтому, когда пользователь загружает /, сервер перенаправляет на /app/. Это прекрасно работает, для некэшированного appspot.com URL. Мой пользовательский домен все еще не работает.

Я почти уверен, что какой-то посредник (провайдер ISP или Tier 1) кэширует весь GET-запрос до /. Не только index.html или ответ сервера на /

Я не уверен, какие у меня есть другие идеи. Есть ли другие способы уничтожить это кэширование?

Ответы [ 2 ]

1 голос
/ 04 ноября 2019

Этого можно добиться, изменив файл app.yaml и добавив обработчик, как показано в примере, показанном ниже:

Обслуживание main.htmlздесь:

handlers:
- url: /
  static_files: app/main.html
  upload: app/main.html

Обслуживание index.html, вместо:

handlers:
    - url: /
      static_files: app/index.html
      upload: app/index.html

Где app - папка, в которой index.html и main.html находятся внутри. У вас может быть что-то, что выглядит по-другому.

0 голосов
/ 04 ноября 2019

Изменить value для index index.html на main.html в angular-cli.json

...