我试图从服务器上的某个位置提供图像,而不是将它们放在我的部署目录下,即应用程序的部署位置。
我的应用库已部署到/opt/myapp
我创建了一个文件夹/opt/myapp-images
,并将所有图像放在其下。完整路径类似于/opt/myapp-images/assets/images/folder1/fruit.png
,并且图像下有不同的文件夹。
我可以访问直到/opt/myapp-images/assets/images/folder1/
的路径,并在浏览器中看到该图像,但是如果我单击该图像,它将显示404 error
。
尝试了很多事情,但似乎没有任何作用。
以下是我的nginx
conf文件-
root /opt/myapp/dist/browser;
location / {
try_files $uri $uri @backend;
}
location /assets/images {
autoindex on;
alias /opt/myapp-images/assets/images;
}
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 7d;
}
在我的html中,我有类似"src="/assets/images/folder1/fruit.png"
不确定我在做什么错。如果需要其他信息,请记住。
答案 0 :(得分:1)
Nginx从location
到process a request中选择一个。当前,任何以.png
结尾的URI都由最后一个location
块处理,对于以/assets/images
开头的URI,该块的文档根目录错误。
使用^~
修饰符使前缀location
优先于正则表达式位置。有关详细信息,请参见this document。
例如:
location ^~ /assets/images {
autoindex on;
root /opt/myapp-images;
expires 7d;
}
如果它也适用于这些URI,请在此处添加expires
指令。
如果可以的话,最好使用root
而不是alias
。有关详细信息,请参见this document。