У меня есть приложение Django и вы можете использовать favicon через него. Но это не рекомендуется, поэтому я сделал это с помощью Apache.Включить favicon на Apache 2.4 с помощью SSL
Раньше у меня были конфигурации HTTP 80. После перехода с HTTP на SSL 443 я больше не могу получить доступ к значку на сервере.
Часть ответственной конфигурации выглядит следующим образом:
<VirtualHost *:443>
DocumentRoot /home/ubuntu/project/project/
Alias /favicon.ico /home/ubuntu/project/static/favicon.ico
Alias /static/ /home/ubuntu/project/static/
<Location />
Require host mysite.com
</Location>
<Directory /home/ubuntu/project/static>
Require all granted
</Directory>
</VirtualHost>
Папка существует и Favicon в нем находится.
Когда я пытаюсь получить доступ к favicon.ico я получаю 403:
Forbidden
You don't have permission to access /favicon.ico on this server.
Как я могу решить эту проблему?
Обновления:
Я обнаружил, что here ServerAliases игнорируются с SSL, поэтому, вероятно, псевдонимы игнорируются, а также.
Here хороший обзор Как обслуживать значки с Django, но я хочу сделать это только с Apache, чтобы свести к минимуму количество запросов к Django.
Here Некоторые разработчики предложили мне проверить разрешения на использование favicon, но это не помогло.
Проблема в корне Адрес директива, которая ограничивает доступ ко всему веб-сайту. Если кто-то знает, как сделать исключение только для значка, напишите его в ответ!
Любая причина, по которой вы должны Alias favicon, а не просто бросать ее на корне? – Eric
@ Эрик Да, причина в том, что documentRoot отличается от местоположения favicon –
Не должно быть Alias /favicon.ico "/home/ubuntu/project/static/favicon.ico" (с кавычками) – Eric