Я разработал простое приложение JSF, используя Glassfish4 в качестве сервера приложений. На данный момент у него только одна страница с административными делами. Когда я запускаю это на локальном хосте, кажется, что все на месте. Но я бы хотел поставить его на удаленный сервер. Я создал эту конфигурацию nginx:
server {
listen 80;
server_name my.domain.name;
location /jsf {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://0.0.0.0:8080/application;
proxy_redirect off;
}
}
И я могу открыть страницу, но на ней отсутствует таблица стилей. Пытается открыть ссылку http://my.domain.name/application/javax.faces.resource/theme.css.xhtml?ln=primefaces-aristo но выдает ошибку 404.
На localhost ссылка следующая: http: // локальный: 8080 / приложение / javax.faces.resource / theme.css.xhtml? ln = primefaces-aristo
РЕДАКТИРОВАТЬ: журнал ошибок nginx содержит такие строки:
2015/07/06 12:58:47 [error] 19916#0: *45 open()
"/usr/share/nginx/html/application/javax.faces.resource/primefaces.js.xhtml;jsessionid=372868209460c2f4d378fac3b8f7"
failed (2: No such file or directory),
client: [my_IP], server: my.domain.name,
request: "GET /application/javax.faces.resource/primefaces.js.xhtml;jsessionid=372868209460c2f4d378fac3b8f7?ln=primefaces&v=5.2 HTTP/1.1",
host: "my.domain.name",
referrer: "http://my.domain.name/jsf/index.xhtml"
В журнале Glassfish есть следующее исключение:
com.sun.faces.context.FacesFileNotFoundException: /application/javax.faces.resource/theme.css.xhtml Not Found in ExternalContext as a Resource
Итак, я обнаружил, что JSF пытается найти ресурсы в приложении / (которое является корневым контекстом приложения jsf), но nginx использует / jsf в директиве местоположения. Так что, возможно, это означает, что я должен использовать одно и то же имя для обоих ..