nginx 缺少 JSF 样式表

nginx 缺少 JSF 样式表

我开发了一个简单的 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 错误。

在本地主机上,链接如下: http://localhost:8080/application/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 尝试在 /application(即 jsf 应用程序的上下文根)中查找资源,但 nginx 在 location 指令中使用 /jsf。所以也许这意味着我应该对两者使用相同的名称。

相关内容