На каком-то уровне, что я делаю что-то очень похожее на это сообщение: how to serve dynamic content in playframework 2Обслуживание динамического контента в Play 2.x
Что является то, что у меня есть веб-приложение, где клиенты могут указать различные параметры, и мы имеем Play ! сервер инициирует процесс, который генерирует пользовательский файл образа ... который затем должен быть возвращен этому клиенту, предпочтительно Play!
Ожидаемая продолжительность жизни изображения может составлять от нескольких секунд до нескольких минут (может быть, даже часов). С этой точки зрения у нас есть основания полагать, что попытка отправить данные изображения напрямую с ответом не является жизнеспособным подходом ... и вместо этого отправит URL-адрес этому динамическому изображению.
Я также очень сильно предпочел бы НЕ полагаться на отдельный HTTP-сервер, настроенный для обслуживания этих динамических изображений по разным причинам. Я считаю, что причин многих, в том числе, но не ограничиваясь ... поддержание более простой архитектуры как для рабочих сред разработчиков, так и для производственных серверов. У нас очень небольшая/ограниченная пользовательская база с очень небольшим количеством одновременных пользователей (я не думаю, что обслуживание этих изображений должно быть очень высокой производительности в любом случае - если Play! Может обслуживать эти динамические изображения, мне трудно представить, что производительность не будет вполне приемлемой, учитывая компромисс простоты).
Я читал, что Играю! активы в общедоступной/папке скомпилированы в время сборки/компиляции файла .jar, что, по-видимому, объясняет, почему мои тесты генерации динамических изображений и обслуживания обратно не работают должным образом - результаты, которые были возвращены, всегда относятся к предыдущей сборке.
Может ли кто-нибудь предложить способ обслуживания динамических активов обратно, не полагаясь на другой сервер?
1. Не пытайтесь смешивать статические активы (в каталоге 'public /') с динамически генерируемыми изображениями, которые вы сохранили на диске. Это может закончиться тем, что кто-то пострадает. 2. Правильный способ обслуживания этих изображений - генерировать их по каждому запросу. Итак, теперь, когда у нас есть способ генерировать ваш ответ (изображение), единственное, что нужно для его ускорения, - это кеширование. Прежде всего: вы упомянули, что у вас не так много запросов на служение. Просто генерировать их на лету без кеширования достаточно быстро? В противном случае вы можете просто кэшировать все изображение? – Carsten