我对nginx还是很陌生,只是想在我的raspberry pi 3A +上设置一个简单的静态内容示例,但是我无法获取它来提供svg文件。在下面的示例中,png图像显示良好,但是svg文件都仅显示替代文本。我已经阅读了文档以及所有可以找到的论坛,并且尝试了所有内容-祝您好运。我尝试从本地主机和局域网上的其他两台PC浏览此文件-结果相同。为什么Nginx会很好地处理png文件,而不是svg?相同的目录,配置,权限等。我测试了svg文件-它们没有损坏或任何损坏。如果我将本地浏览器指向该目录而不通过Nginx,则可以查看它们。
user pi;
events{}
http {
server {
listen 80;
server_name localhost;
root /home/pi/DigitalClock/dcvenv;
index /static/index.html;
location / {
autoindex on;
}
}
}
image/svg+xml svg svgz;
<html>
<img src="/static/admin/img/pic01.png" alt="Search"></label>
<img src="/static/admin/img/icon-yes.svg" alt="icon yes"></label>
<img src="/static/admin/img/search.svg" alt="icon yes"></label>
<img src="/static/admin/img/sorting-icons-yes.svg" alt="icon yes"></label>
</html>
所有文件都位于指定目录中,并且权限从root向下依次设置为owner = rwx,group = x,other = x
nginx start command: sudo service nginx start
<svg width="14" height="84" viewBox="0 0 1792 10752" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<g id="sort">
<path d="M1408 1088q0 26-19 45l-448 448q-19 19-45 19t-45-19l-448-448q-19-19-19-45t19-45 45-19h896q26 0 45 19t19 45zm0-384q0 26-19 45t-45 19h-896q-26 0-45-19t-19-45 19-45l448-448q19-19 45-19t45 19l448 448q19 19 19 4$
</g>
<g id="ascending">
<path d="M1408 1216q0 26-19 45t-45 19h-896q-26 0-45-19t-19-45 19-45l448-448q19-19 45-19t45 19l448 448q19 19 19 45z"/>
</g>
<g id="descending">
<path d="M1408 704q0 26-19 45l-448 448q-19 19-45 19t-45-19l-448-448q-19-19-19-45t19-45 45-19h896q26 0 45 19t19 45z"/>
</g>
</defs>
<use xlink:href="#sort" x="0" y="0" fill="#999999" />
<use xlink:href="#sort" x="0" y="1792" fill="#447e9b" />
<use xlink:href="#ascending" x="0" y="3584" fill="#999999" />
<use xlink:href="#ascending" x="0" y="5376" fill="#447e9b" />
<use xlink:href="#descending" x="0" y="7168" fill="#999999" />
<use xlink:href="#descending" x="0" y="8960" fill="#447e9b" />
</svg>
<svg width="15" height="15" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg">
<path fill="#555555" d="M1216 832q0-185-131.5-316.5t-316.5-131.5-316.5 131.5-131.5 316.5 131.5 316.5 316.5 131.5 316.5-131.5 131.5-316.5zm512 832q0 52-38 90t-90 38q-54 0-90-38l-343-342q-179 124-399 124-143 0-273.5-55.5$
</svg>
很奇怪。 / img目录中有3个svg文件无法渲染(其他所有文件都可以正常工作):
search.svg
tooltag-add.svg
icon-yes.svg
这是奇怪的部分。如果将这些文件重命名为任何其他名称,然后将index.html更改为引用新名称,则它们的呈现就很好。这些名称是否有些奇怪? Nginx是否以其他方式在其他地方寻找这些名称?这对我来说毫无意义。
我想确保自己正在看的东西。 search.svg不呈现。我将文件名更改为search2.svg,然后在index.html文件中也将其更改。工作良好。然后,我将两者都改回了search.svg-不起作用。令人惊讶的是文件名导致了这一点。有人吗??????
答案 0 :(得分:0)
确保在mime.types
部分中实际包含http { ... }
:
include /etc/nginx/mime.types;
因此完成配置:
user pi;
events{}
http {
include /etc/nginx/mime.types;
server {
listen 80;
server_name localhost;
root /home/pi/DigitalClock/dcvenv;
index /static/index.html;
location / {
autoindex on;
}
}
}
答案 1 :(得分:0)
使用ctrl f5清除浏览器缓存可解决此问题。