Ответ 1
В идеальном мире у нас будет возможность настроить переписывание как apache mod_rewrite на базовом веб-сервере. К сожалению, невозможно настроить переписывание на таком уровне.
Я немного искал и обнаружил, что наиболее распространенным ответом для перезаписи является пользователь UrlRewriteFilter или самостоятельно подключите сервлеты. Оба варианта описаны в
Оба работают одинаково и требуют, чтобы приложение обслуживало статический контент через движок приложения. Это приведет к часам экземпляров ядра приложения и более медленным ответам, поскольку все ваши статические файлы переходят из сети доставки контента Google (cdn) в ваше приложение с узким местом. Возможно, вам также потребуется развернуть ваши статические файлы как ресурс (How-To настроить статические файлы и ресурсы), по крайней мере, это как я это сделал раньше.
Это параметры "чистой Java", которые у вас есть. app.yaml
, который описывается Josep Valls, будет работать с Java на App Двигатель. Главный вопрос здесь заключается в том, что конфигурация app.yaml достаточно низка, чтобы быть переписанной, которую Google распознает в своем cdn, или вы будете продолжать запись через часы экземпляра, потому что все содержимое передается через экземпляры.
документация сообщает нам:
Для эффективности App Engine хранит и обслуживает статические файлы отдельно из файлов приложений. Статические файлы недоступны в файловой системы приложения. Если у вас есть файлы данных, которые необходимо прочитать по коду приложения файлы данных должны быть файлами приложений и не должны соответствовать статическому шаблону файла.
Так как это происходит прямо перед разделом, в котором объясняется, как настроить обработчики шаблонов статических файлов, следует предположить, что конфигурация таких обработчиков не нарушит описанную выше логику - это
хранит и обслуживает статические файлы отдельно от файлов приложений.
Правильно ли это предположение является легким экспериментом, который я буду проводить с учетом времени и сообщать о моих выводах здесь.
Это все существующие варианты, которые я мог найти и знать. Если кто-то знает больше на эту тему, прокомментируйте/ответьте.
EDIT (7.12.2015)
Моя цель maven appengine:devserver
полностью не обращает внимания на настройки в app.yaml. Мне нужно поэкспериментировать с этим на одной из следующих фаз развертывания или использовать mvn gcloud:run
.
... позже в этот день:
Переписывание URL-адреса через сервлет (например, с Paul Tuckey UrlRewriteFilter) не работает для статических файлов. Вам придется развернуть файлы как файлы ресурсов. Статические файлы находятся где-то еще и не будут найдены, если они перенаправлены сервлетом. По крайней мере, как я это понимаю.