У меня есть интерфейс Apache 2, который обслуживает два вида запросов:
- Запросы к корневой папке (например, http://mysite.com/ и http://mysite.com/help) обслуживаются самим апачем (PHP / Wordpress).
- Особые запросы к подпапке '/ playapp' перенаправляются в Play! через обратный прокси через мод-прокси:
мод-proxy.conf
ProxyPass /playapp/ http://localhost:9000/
ProxyPassReverse /playapp/ http://localhost:9000/
Конечным результатом является то, что запросы http://mysite.com/playapp/Controller/action
доходят до сервера Play в виде http://localhost:9000/Controller/action
Теперь играй! обслуживает страницу корректно, но все ссылки, включая javascript, css и ссылки на другие страницы, не работают. Например, если представление использует:
#{stylesheet 'style.css' /}
Тогда результат будет
<link rel="stylesheet" type="text/css" href="/public/stylesheets/style.css" charset="utf-8" ></link>
Таким образом, конечный пользователь пытается получить http://mysite.com/public/stylesheets/style.css
, который возвращает 404, потому что он на самом деле не является частью Play! приложение.
Как правильно настроить Apache + Play для игры здесь?
Я ищу результат для Play! чтобы возвратить URL-адреса, подобные этому, в окончательном отрендеренном HTML-коде (или, возможно, Apache перезапишет URL-адреса соответствующим образом): http://mysite.com/playapp/public/stylesheets/style.css
Кроме того, мне нужна возможность устанавливать ссылки за пределами приложения Play. Например, я хочу, чтобы домашний маршрут (/) отображался в моем абсолютном корне (http://mysite.com/
), а не в корне Play.