我在同一台服务器上有两个reactjs应用程序,第二个是基于客户端的PDF呈现程序,每当调用/pdf/*命名空间下的任何内容时,我都试图让它响应。
(在生产中使用配置之前对本地进行测试)
server {
listen 8080;
## Exact Match /pdf
location = /pdf {
root /Users/aronlilland/Documents/dev/backbone-ui/applications/pdf-renderer/build;
add_header Cache-Control no-cache;
try_files $uri $uri/ /index.html;
}
## Match anything /pdf/*
location /pdf {
root /Users/aronlilland/Documents/dev/backbone-ui/applications/pdf-renderer/build;
add_header Cache-Control no-cache;
try_files $uri $uri/ /index.html;
}
## Everything else
location / {
root /Users/aronlilland/Documents/dev/backbone-ui/applications/backbone/dist;
add_header Cache-Control no-cache;
try_files $uri $uri/ /index.html;
}
}我知道位置语法是正确的,因为如果我用文本blurb替换内容,我可以确认/pdf响应独立于/位置块下的所有内容。
为了测试这一点,我在每个/pdf块下使用了以下代码
location /pdf {
add_header Content-Type "text/plain";
return 200 "success pdf*";
}
location = /pdf {
add_header Content-Type "text/plain";
return 200 "success pdf only";
}但是,当try_files和root被添加到/pdf块中时,会发生一些变化,然后返回到/块中。
有什么想法,我如何可以调整我的配置,以获得第二个pdf渲染应用程序的响应?
发布于 2022-11-20 23:46:20
这是最后的(成功的)版本。
server {
## ...
## Match anything prefixed with /pdf/*
location /pdf {
root /var/www/backbone-ui/applications/pdf-renderer/build;
add_header Cache-Control no-cache;
try_files $uri /pdf/index.html;
}
## Everything else
location / {
root /var/www/backbone-ui/applications/backbone/dist;
add_header Cache-Control no-cache;
try_files $uri $uri/ /index.html;
}
}不过,我不得不在pdf-renderer应用程序中做一些额外的更改,这是一个使用create-react-app制作的应用程序。
我必须将构建文件夹中的所有内容输出到一个名为./build/pdf的子文件夹中。我还必须在package.json的pdf-renderer应用程序下设置一个字段,名为homepage to "homepage": "/pdf"。
https://stackoverflow.com/questions/74493426
复制相似问题