Я начинаю создавать свой продукт сегодня.
Я следовал некоторым учебникам в Интернете, в которых рассказывается, как развернуть статический веб-сайт в Google App Engine.
И он успешно развернут.
Тем не менее, когда я попытался настроить URL-адреса для index.html, файл index.html был поврежден, непосредственно указывая на местоположение index.html.
Мой успешный сайт: Ссылка здесь
Сбой ситуации: Ссылка здесь
Мой файл app.yaml:
Различие между двумя ситуациями - это только последний символ "/" в URL.
Я понятия не имею, почему index.html сломается с "/". Обработчик перенаправления должен перенаправлять в то же местоположение файла ...
Обновление:
После многих испытаний. Я обнаружил, что проблема заключается в среде выполнения в app.yaml.
Мой сайт отлично работает, когда env: flex.
И он ломается, когда env: (что-нибудь статическое, кроме flex)
Итак, я могу пойти двумя путями:
использовать flex env. но я не знаю, как перенаправить в index.html, так как я обнаружил, что -handlers не работает в flex env после моей попытки.
Сохраняйте статическую среду для удобного маршрута. Но проблема в том, как сделать так, чтобы сайт работал хорошо.
Пожалуйста, помогите ...
2-е обновление
После перестроения и развертывания все.
Мой сайт сейчас работает.
Однако он работает только на https://koki -6hats.appspot.com / index.html
Для других случаев, таких как:
https://koki -6hats.appspot.com / индекс
https://koki -6hats.appspot.com /
https://koki -6hats.appspot.com / shouldGoToIndex.html
не работает.
Как я могу настроить правило маршрутизации, чтобы обеспечить автоматическое перенаправление всех ссылок выше на index.html?
3-е обновление
Спасибо, что Алекс и GAEfans ответили на мой вопрос!
Это мой текущий app.yaml:
runtime: python27
api_version: 1
threadsafe: true
default_expiration: "3m"
handlers:
- url: /(.*\.(appcache|manifest))
mime_type: text/cache-manifest
static_files: static/\1
upload: static/(.*\.(appcache|manifest))
- url: /(.*\.atom)
mime_type: application/atom+xml
static_files: static/\1
upload: static/(.*\.atom)
- url: /(.*\.crx)
mime_type: application/x-chrome-extension
static_files: static/\1
upload: static/(.*\.crx)
- url: /(.*\.css)
mime_type: text/css
static_files: static/\1
upload: static/(.*\.css)
- url: /(.*\.eot)
mime_type: application/vnd.ms-fontobject
static_files: static/\1
upload: static/(.*\.eot)
- url: /(.*\.htc)
mime_type: text/x-component
static_files: static/\1
upload: static/(.*\.htc)
- url: /(.*\.html)
mime_type: text/html
static_files: static/\1
upload: static/(.*\.html)
- url: /(.*\.ico)
mime_type: image/x-icon
static_files: static/\1
upload: static/(.*\.ico)
- url: /(.*\.js)
mime_type: text/javascript
static_files: static/\1
upload: static/(.*\.js)
- url: /(.*\.json)
mime_type: application/json
static_files: static/\1
upload: static/(.*\.json)
- url: /(.*\.m4v)
mime_type: video/m4v
static_files: static/\1
upload: static/(.*\.m4v)
- url: /(.*\.mp4)
mime_type: video/mp4
static_files: static/\1
upload: static/(.*\.mp4)
- url: /(.*\.(ogg|oga))
mime_type: audio/ogg
static_files: static/\1
upload: static/(.*\.(ogg|oga))
- url: /(.*\.ogv)
mime_type: video/ogg
static_files: static/\1
upload: static/(.*\.ogv)
- url: /(.*\.otf)
mime_type: font/opentype
static_files: static/\1
upload: static/(.*\.otf)
- url: /(.*\.rss)
mime_type: application/rss+xml
static_files: static/\1
upload: static/(.*\.rss)
- url: /(.*\.safariextz)
mime_type: application/octet-stream
static_files: static/\1
upload: static/(.*\.safariextz)
- url: /(.*\.(svg|svgz))
mime_type: images/svg+xml
static_files: static/\1
upload: static/(.*\.(svg|svgz))
- url: /(.*\.swf)
mime_type: application/x-shockwave-flash
static_files: static/\1
upload: static/(.*\.swf)
- url: /(.*\.ttf)
mime_type: font/truetype
static_files: static/\1
upload: static/(.*\.ttf)
- url: /(.*\.txt)
mime_type: text/plain
static_files: static/\1
upload: static/(.*\.txt)
- url: /(.*\.unity3d)
mime_type: application/vnd.unity
static_files: static/\1
upload: static/(.*\.unity3d)
- url: /(.*\.webm)
mime_type: video/webm
static_files: static/\1
upload: static/(.*\.webm)
- url: /(.*\.webp)
mime_type: image/webp
static_files: static/\1
upload: static/(.*\.webp)
- url: /(.*\.woff)
mime_type: application/x-font-woff
static_files: static/\1
upload: static/(.*\.woff)
- url: /(.*\.xml)
mime_type: application/xml
static_files: static/\1
upload: static/(.*\.xml)
- url: /(.*\.xpi)
mime_type: application/x-xpinstall
static_files: static/\1
upload: static/(.*\.xpi)
# image files
- url: /(.*\.(bmp|gif|ico|jpeg|jpg|png))
static_files: static/\1
upload: static/(.*\.(bmp|gif|ico|jpeg|jpg|png))
# audio files
- url: /(.*\.(mid|midi|mp3|wav))
static_files: static/\1
upload: static/(.*\.(mid|midi|mp3|wav))
# windows files
- url: /(.*\.(doc|exe|ppt|rtf|xls))
static_files: static/\1
upload: static/(.*\.(doc|exe|ppt|rtf|xls))
# compressed files
- url: /(.*\.(bz2|gz|rar|tar|tgz|zip))
static_files: static/\1
upload: static/(.*\.(bz2|gz|rar|tar|tgz|zip))
# index files
- url: /(.*)
static_files: static/index.html
upload: static/index.html
# site root
- url: /
static_files: static/index.html
upload: static/index.html
И это моя структура папок:
.root
- app.yaml
- static
- index.html
- favicon.ico
- styles.html
- php
- sendMail.php
- css
- ...
- js
- ...
- fonts
- ...
- image
- ...
В этой сборке исправлена вторая проблема с обновлениями!
Тем не менее,
Для других случаев, таких как:
https://koki -6hats.appspot.com / индекс /
https://koki -6hats.appspot.com / индекс / index.html
все еще не работает.
Мой конечный результат - например:
Структура папок:
.root
- app.yaml
- static
- index.html
- favicon.ico
- styles.html
- php
- sendMail.php
- css
- ...
- js
- ...
- fonts
- ...
- image
- ...
- folderA
- index.html
- css, js, etc...
- folderB
- index.html
- css, js, etc...
Url Отношения:
- URL: http://domain/folderA/(anything_and_level_behind), Вывод: Показать папку A index.html
- URL: http://domain/folderB/(anything_and_level_behind), вывод: Показать index.html папки * B
- URL: http://domain/other_folder_have_no_index_html_inside/, вывод: Показать index.html
- URL: http://domain/anything(no_/_AtLast), output: Показать index.html статического файла
- URL: http://domain/anything/anything/anything/(and_so_on...),, который 'что-нибудь' не является 'папкой A' / 'папкой B', вывод: Показать static.html
- Показывать index.html статического файла, если он не совпадает с вышеприведенными случаями
Последнее обновление
Спасибо за помощь Alex & GAEfans снова.
Теперь перенаправление работает отлично. Но он показывает некоторые предупреждения в консоли развернутой версии.