Отказано е изпълнението на скрипта, защото неговият MIME тип е за уебсайт, хостван на сървър на Amazon

Доста е трудно да обясня проблема, пред който съм изправен, но ще опитам.

Както подсказва заглавието, получавам грешен MIME тип грешка в някои javascript файлове, от които уебсайтът ми извлича. Преди нямах този проблем. Странното е, че си отива и се връща от само себе си. Чух, че има нещо общо със скорошната промяна на Chrome поради сигурност.

Грешката казва, че моят тип скрипт е binary/octet-stream, когато трябва да бъде application/script. Така че добавих type="application/script" към всички препратки към скрипта, но грешката все още остава.

Що се отнася до средата на проекта, използвам Babel за управление на уебсайта си заедно с Gulp за изпълнение на задачи и използвам Amazon server за хостване на сайта и го прокарвам през Github.

Чудя се дали има начин да конфигурирам изрично MIME type в Babel проект или да конфигурирам нещо от страна Amazon server, за да се адаптира към скорошната промяна на Chrome.

Не знам дали това е достатъчно подробно за този проблем, така че, моля, уведомете ме, ако имате нужда от повече информация. Търся в гугъл известно време, но не съм срещал случай с точните ми настройки.


person Seong Lee    schedule 04.04.2018    source източник


Отговори (1)


Няма нищо общо с атрибута type на вашия скрипт.

Content-Type е заглавка, изпратена от сървъра към клиента, когато поискате файл. Той казва на клиента какъв вид файл е поискал.

Преди няколко месеца браузърите просто приемаха, че всеки url в src на скрипта е Javascript файл. Наскоро стана изискване тези файлове да имат тип съдържание на Javascript. (Типът на съдържанието няма нищо общо с файловото разширение).

Github не е CDN, не трябва да се свързвате към Javascript файлове от Github във вашите страници. За да попречат на хората да злоупотребяват с техните сървъри, Github (и други) сега обслужват необработените си Javascript файлове с тип съдържание в обикновен текст (с изключение на github.io).

person I wrestled a bear once.    schedule 04.04.2018
comment
Благодаря за приноса! Не свързвам моите javascript файлове от Github. Използвам библиотеки като cdnjs.com/libraries/gsap и други скриптове се компилират от Gulp и живеят в хостван сървър. Искам да кажа, че не съм споменал Github като CDN.. Или има нещо, което не разбирам съвсем тук? - person Seong Lee; 04.04.2018
comment
Моля, обяснете по-подробно, че не трябва да се свързвате към файлове с Javascript от Github на страниците си, тъй като наистина смятам, че не разбирам идеята, а също и ако можете да посочите по-подробно какво мога да направя, за да се справя с това.. Благодаря, наистина оценявам това. - person Seong Lee; 04.04.2018
comment
@SeongLee - Казахте, че изпращате файловете си през Github - ако вашият сайт се изгражда чрез вашето хранилище в Github, има шанс Github да ги обслужва като обикновен текст. Просто обяснявах първопричината за проблема. Аз (нито някой друг) мога да ви кажа как да го поправите, освен ако не предоставите повече информация. Ако сте споделили връзка към сайта, който причинява проблема, това би било начало. - person I wrestled a bear once.; 04.04.2018
comment
Под „прокарване през github“ имах предвид натискане на ангажимент на код към частен github, където версията се поддържа. Сайтът живее в сървър на Amazon и не е страница, хоствана в github. Грешката вече е изчезнала, така че няма да я покаже, но трябва да предотвратя това да се случи следващия път. Както подсказва отговорът ви, бих искал да знам как мога изрично да кажа какъв е „тип съдържание“ на клиента. - person Seong Lee; 04.04.2018
comment
@SeongLee - Можете да видите типа съдържание на всяка заявка, като погледнете в раздела Мрежа на конзолата за програмисти на вашия браузър. Обикновено има раздел за заглавки, който показва всички заглавки на заявката, включително Content-Type. Освен ако няма да споделите нови подробности, не мога да направя нищо повече, за да ви помогна. Късмет. - person I wrestled a bear once.; 04.04.2018