it-swarm.com.ru

Ресурс интерпретируется как изображение, но передается с помощью MIME-типа text/html - Magento

Я получаю сообщение об ошибке при загрузке нового изображения продукта для моего магазина Magento.

Resource interpreted as image but transferred with MIME type text/html

Есть ли причина, почему это происходит?

37
Jae Kun Choi

Это может произойти, если путь к изображению установлен неправильно. Например, относительно текущего каталога "images/myimage.gif" и относительно веб-корня "/images/myimage.gif".

Ссылка на «text/html» может указывать на то, что сервер вернул ошибку.

42
Ian Lewis

Я заметил, что эта проблема появляется в моем журнале консоли JavaScript. Это был простой случай, когда CSS-файл искал фоновое изображение, которого не было, и сервер отправлял сообщение об ошибке 404 вместо него.

12
stevecomrie

Нужно обслуживать изображения с правильным типом MIME -

Добавьте эту строку в файл .htaccess (при условии, что это Apache2 httpd):

AddType image/gif .gif

подсказка: mod_rewrite может потребовать исключения для изображений:

RewriteCond %{REQUEST_URI} !\.(png|gif|jpg)$
RewriteRule ...

... все остальное может быть 404 действительно.

5
Martin Zeitler

Однажды у меня была такая же проблема из-за заглавных букв .

Мои коллеги работали на Mac и добавили несколько файлов в верблюжьем корпусе, но в CSS они оказались в нижнем регистре. Это отлично работает на Mac, но я работал на Linux . Mac не различает имена файлов в разных случаях, а в Linux. Большинство серверов работают на Linux.

пример:

epicimage.jpg !== EpicImage.jpg

Благодаря Chrome Dev Tools, проблема может быть найдена очень легко. Простое нажатие на изображение URL показало мне нашу страницу 404. Тайна разгадана: D

3
Kim Hogeling

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

2
Ralphkay

Моя проблема была с этой строкой в ​​CSS 

background-image: url(''); 

Который должен был быть:

background-image: none;
2
Strixy

После многих исследований я обнаружил, что проблема вызвана комбинацией вещей, в результате чего сервер не знает, какой это тип документа, и смешивается между типами кодирования, такими как UTF-8 (или что-то в этом роде)

Таким образом, в .htaccess измените раунд комментариев так, чтобы у вас было следующее, давая набор символов по умолчанию UTF-8. 

############################################
## Prevent character encoding issues from server overrides
## If you still have problems, use the second line instead

    #AddDefaultCharset Off
    AddDefaultCharset UTF-8

Это остановило правильную ошибку, отображаемую в google (спасибо, г-н google): "Ресурс интерпретирован как изображение, но передан с типом mime text/html"

И сделанные изображения отображаются в других браузерах (там, где не было ошибок).

2
Jackie

Я проверил в основном все подобные вопросы на StackOverflow, пытаясь решить аналогичную проблему.

После всех попыток изменить мой файл htaccess и вставить аргументы php head, для меня это было исправлено ... просто изменение заглавной буквы в имени картинки.

Тьфу .. (Он работал нормально в том же браузере, который тоже размещался на локальном хосте ... так что, конечно, я бы не подумал, что это изначально проблема.)

2
emerazea

Если путь к изображению и регистрозависимое имя файла заданы правильно, и если вы не можете изменить файл .htaccess вашего сервера, кодирование SVG в качестве URI данных является интерфейсным решением. css-tricks.com объясняет, как: http://css-tricks.com/using-svg/

0
matbergman

Для меня эта ошибка типа MIME показала только при тестировании Safari 4.05 для требований клиента и только в консоли. В конечном итоге это было вызвано тем, что Safari безрассудно обработал стилизацию javascript element.style.backgroundImage="url()";. Очевидно, Safari искал этот пустой URL, поэтому, согласно Strixy и stevecomrie, «none» - лучший выбор. По сути, это та же проблема, что и отмеченная выше, так как она почти совпадает с Ресурс интерпретируется как другой, но передается с помощью текста/javascript типа MIME? , где <script src=""> был виновником.

0
grayrabbit

Для пользователей magento2

Если вы изменили этот файл app/etc/di.xml Со следующими 

<item name="view_preprocessed" xsi:type="object">Magento\Framework\App\View\Asset\MaterializationStrategy\Copy</item>

убедитесь, что строка пути чувствительна к регистру (CaseSensitive для ОС не Windows)


Если после magento2 вы столкнулись с 404 ошибками, установите в Ubuntu .

Установить и включить переписать модуль

a2enmod rewrite

Затем Редактировать 

 /etc/Apache2/sites-available/000-default.conf

Добавьте следующие строки в конце

<Directory "/var/www/html">
    AllowOverride All 
</Directory>
0
abdul rashid

Для меня мой путь был установлен неправильно относительно файла CSS, который пытался извлечь изображение из того, что вызвало ошибку в консоли.

Мне пришлось выйти из двух каталогов, а затем в ту, в которой было мое изображение. Перед тем, как косая черта вывела вас из каталога. Каждый. приносит вам еще один каталог.

ех. URL (../Folder/ImagesFolder/image.gif)

0
Terri Swiatek

Может быть, изображения не имеют разрешения на чтение

Я также получил эту проблему, когда я использую TinyPNG для сжатия изображений, я получил это сообщение об ошибке "Ресурс интерпретируется как изображение, но передается с типом MIME text/html". Затем я добавляю разрешение изображений, это работает.

0
weimin

Это случилось со мной, когда я включал изображение SVG через тег img. Если вы включаете SVG-изображение с помощью тега, вам нужно переключиться на тег объекта: <object type="image/svg+xml" data="imageFile.svg"> Test SVG Logo </object>

0
TechMaze