nginx не будет обслуживать файлы .svg - PullRequest
0 голосов
/ 23 февраля 2019

Я довольно новичок в nginx, и я просто пытаюсь настроить простой пример статического контента на моем raspberry pi 3A +, но я не могу заставить его работать с файлами SVG.В приведенном ниже примере изображение png показывает нормально, но все файлы svg показывают только альтернативный текст.Я просмотрел документацию и все форумы, которые смог найти, и перепробовал все - не повезло.Я попытался просмотреть это с localhost и двух других компьютеров в моей локальной сети - тот же результат.Почему nginx прекрасно работает с png файлами, а не с svg?Тот же каталог, конфиг, права доступа и т. Д. Я проверил файлы SVG - они не повреждены или что-нибудь.Я могу просмотреть их, если укажу своему локальному браузеру на этот каталог без nginx.

Вот файл /etc/nginx/nginx.conf

user pi; 
events{} 

http { 

  server { 
    listen 80; 
    server_name localhost; 
    root /home/pi/DigitalClock/dcvenv; 
    index /static/index.html; 

  location / { 
    autoindex on; 
  } 
  } 
} 

Запись вФайл /etc/nginx/mime.types (я вообще не изменял файл)

image/svg+xml svg svgz; 

вот мой /static/index.html

<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.первый работает, второй не

1-й svg

<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>

2-й 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, которые не будут отображаться (все остальные работают нормально):

  1. search.svg

  2. tooltag-add.svg

  3. icon-yes.svg

Вот странная часть.Если вы переименуете эти файлы в любое другое имя, а затем измените index.html для ссылки на новое имя, они будут отображаться очень хорошо.Есть ли что-то странное в этих именах?Nginx как-то ищет эти имена в другом месте?Это не имеет смысла для меня.

Я хотел убедиться, что вижу то, что вижу.search.svg не отображает.Я изменил имя файла на search2.svg, а затем изменил его в файле index.html.Работает отлично.Затем я изменил его обратно на search.svg в обоих - не работает.Удивительно, что имя файла вызывает это.Любой ??????

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

Очистка кеша браузера ctrl f5 устранила эту проблему.

0 голосов
/ 23 февраля 2019

Убедитесь, что вы действительно включили 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; 
  } 
  } 
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...