我在这里感到沮丧。 包含静态文件的文件夹:
/home/jenkins/shared/images/
/project
/folder
EyZvhbPJg.jpg
EyZvhbPJg.jpg?width=200.jpg
Nginx后端配置
location @render {
rewrite ^ /img$target break;
proxy_pass http://127.0.0.1:3001;
}
想象一下一个URL /images/project/folder/EyZvhbPJg.jpg?width=200
逻辑是。 如果找不到文件,则会触发@render位置(创建文件 - 调整大小或执行所需的任何操作)
之后,该文件由nginx提供。问题是$ args和$ ext 从理论上讲,nginx的目标路径应如下所示:
/home/jenkins/shared/images/$uri?$args$ext
必须有一个条件,如果没有设置$ args,?$ args应该与$ ext一起被忽略
我尝试了很多可能的变化,但似乎没有用。中间有东西被打破了。事实证明,如果条件和别名,我不能使用。
location ~ ^\/images(?<target>.*\.(?<ext>jpg|png|jpeg|gif).*) {
try_files /cached @render;
}
location ~ ^\/cached(?<target>.*(?<ext>\.jpg|\.png|\.jpeg|\.gif).*) {
alias /home/jenkins/shared/images/$target?$args$ext;
}
location @render {
rewrite ^ /img$target break;
proxy_pass http://127.0.0.1:3001;
}
location / {
proxy_pass http://127.0.0.1:3001;
}
非常感谢任何提示或指示! 提前谢谢!