Не удается загрузить svg файлы в WordPress

Вопрос или проблема

Я сталкиваюсь со следующей проблемой при загрузке любого SVG-файла и иногда с той же проблемой при загрузке любого изображения. “Сервер не может обработать изображение. Это может произойти, если сервер занят или у него недостаточно ресурсов для завершения задачи. Загрузка меньшего изображения может помочь. Рекомендуемый максимальный размер – 2560 пикселей.”

Размер изображения составляет всего 11 КБ. Я начал сталкиваться с этой проблемой после установки (Безопасности веб-сайта – Стандарт) на Godaddy, который добавляет SSL и брандмауэр на домен, в то время как хостинг находится на AWS. Кто-нибудь может помочь с этим?

Попробуйте использовать плагин для включения SVG, который также санирует SVG, что очень важно, например SafeSVG. SVG по умолчанию не включены в WP из-за проблем безопасности, поэтому санитация важна.

Проверьте, установлен ли на сервере модуль php-xml.

Я решил эту проблему, установив

sudo apt install php-xml

Я начал сталкиваться с этой проблемой после установки (Безопасности веб-сайта – Стандарт) на Godaddy

Это важная информация. Веб-приложение брандмауэр часто блокирует загрузку SVG как ложное обнаружение межсайтового скриптинга. Вам нужно добавить свой IP-адрес в белый список в настройках брандмауэра.

У меня похожая проблема с загрузкой SVG-файлов в WordPress, когда активирован плагин Elementor. Отключение всех плагинов, кроме Elementor, не решило проблему; загрузка работает только при полной деактивации Elementor.

Интересно, что когда я переключаюсь на списковый режим, перейдя по /wp-admin/upload.php?mode=list, я могу загрузить SVG. Однако, когда я возвращаюсь в сеточный режим, я не вижу загруженных изображений и не могу загрузить, и получаю следующую ошибку:

PHP Fatal error: Uncaught Error: Typed property DOMElement::$tagName must not be accessed before initialization in /var/www/ffbdevelopers/wp-content/plugins/elementor/core/utils/svg/svg-sanitizer.php on line 183

Я пробовал различные решения, упомянутые в этой теме, но все равно сталкиваюсь с той же проблемой. Я подтвердил, что WordPress, Elementor и PHP все обновлены. Кто-нибудь нашел решение этого конфликта или есть известные проблемы, связанные с загрузкой SVG с активированным Elementor?

Ответ или решение

Проблема с загрузкой SVG файлов в WordPress: Полное руководство по решениям

Загрузка SVG (Scalable Vector Graphics) файлов в WordPress может представлять собой определённые сложности, особенно после установки новых плагинов или изменений конфигураций сервера. В этом руководстве мы рассмотрим возможные причины проблемы с загрузкой SVG файлов и предоставим рекомендации по её решению.

1. Проблема с безопасностью и настройками сервера

Основная причина, по которой WordPress не разрешает загрузку SVG файлов, заключается в рисках безопасности. SVG файлы могут содержать код, который может быть использован для атаки на сайт.

Решение: Используйте специальные плагины для загрузки SVG, такие как SafeSVG. Это обеспечит не только разрешение загрузки SVG файлов, но и их санитаризацию, что минимизирует потенциальные угрозы.

2. Проблемы с конфигурацией сервера

Исходя из вашего описания, вы столкнулись с ошибкой после установки защиты сайта (Website Security – Standard) от GoDaddy, которая включает SSL и брандмауэр. Брандмауэр может блокировать загрузку SVG файлов, распознавая их как потенциально опасные.

Рекомендации по исправлению:

  • Проверьте настройки брандмауэра. Возможно, вам необходимо включить свой IP-адрес в белый список. Это позволит вашему серверу обрабатывать загрузки без блокировки.
  • Убедитесь, что на сервере установлен модуль php-xml. Это можно сделать с помощью следующей команды в терминале:

    sudo apt install php-xml

3. Конфликты плагинов

Вы отметили, что проблема проявляется при активном использовании плагина Elementor. Иногда ему требуются специфические настройки для корректной работы со SVG файлами.

Действия для устранения проблемы:

  • Деактивируйте все плагины, кроме Elementor, и проверьте, продолжается ли проблема. Если проблема решена, поочередно активируйте плагины, чтобы определить, какой из них вызывает конфликт.
  • Отключите режим сетки при загрузке, переключившись на режим списка по следующему адресу:

    /wp-admin/upload.php?mode=list

    Благодаря этому вы сможете загружать SVG файлы, однако при переходе обратно в режим сетки возникнет ошибка:

    PHP Fatal error: Uncaught Error: Typed property DOMElement::$tagName must not be accessed before initialization in /var/www/ffbdevelopers/wp-content/plugins/elementor/core/utils/svg/svg-sanitizer.php on line 183

    Это указывает на внутреннюю ошибку плагина Elementor, вероятно, связанной с его обработкой SVG. Убедитесь, что ваш плагин Elementor обновлён до последней версии. Если ошибка сохраняется, обратитесь к поддержке Elementor для получения дополнительных советов.

4. Другие возможные решения

  • Попробуйте использовать другой браузер или сбросьте кэш браузера, чтобы исключить проблемы кэширования.
  • Установите и активируйте плагин для управления MIME-типами, например, WP Add Mime Types, который позволит добавить разрешение на загрузку SVG в WordPress.
  • Если вы используете CDN (Content Delivery Network), убедитесь, что он не блокирует загрузку SVG файлов.

Заключение

Загрузка SVG файлов в WordPress может вызвать трудности из-за настроек безопасности, конфигурации сервера и конфликтов плагинов. Следуя приведённым рекомендациям, вы сможете устранить большинство проблем, связанных с этой задачей. В случае, если проблема не решается, рассмотрите возможность обращения в техническую поддержку вашего хостинг-провайдера или к разработчикам используемых вами плагинов.

Оцените материал
Добавить комментарий

Капча загружается...