Когда я пытаюсь изменить ссылку на локальный файл JavaScript на версию GitHub raw, мой тестовый файл перестает работать. Ошибка:
Отказался от выполнения скрипта из ..., потому что его тип MIME (
text/plain
) не является исполняемым, и включена строгая проверка типов MIME.
Есть ли способ отключить это поведение или есть служба, которая позволяет связывать с необработанными файлами GitHub?
Рабочий код:
<script src="bootstrap-wysiwyg.js"></script>
Неработающий код:
<script src="https://raw.github.com/mindmup/bootstrap-wysiwyg/master/bootstrap-wysiwyg.js"></script>
javascript
github
AuthorProxy
источник
источник
rawgit
кеш никогда не обновляется .Ответы:
Для этого есть хороший обходной путь, используя jsdelivr.net .
Шаги :
raw.githubusercontent.com
наcdn.jsdelivr.net
/gh/
перед вашим именем пользователя.branch
имя.@version
(если вы этого не сделаете, вы получите самую последнюю версию - что может вызвать длительное кэширование)Примеры :
Используйте этот URL, чтобы получить последнюю версию:
Используйте этот URL, чтобы получить конкретную версию или зафиксировать хеш:
В производственных средах рассмотрите возможность нацеливания на определенный тег или хэш-фиксацию, а не на ветку. Использование последней ссылки может привести к долгосрочному кешированию файла, в результате чего ваша ссылка не будет обновляться при установке новых версий. Ссылка на файл по коммит-хешу или тегу делает ссылку уникальной для версии.
Зачем это нужно?
В 2013 году начал использоваться GitHub
X-Content-Type-Options: nosniff
, который предписывает более современным браузерам применять строгую проверку типов MIME. Затем он возвращает необработанные файлы в MIME-типе, возвращенном сервером, не позволяя браузеру использовать файл по назначению (если браузер учитывает настройку).Для справки по этой теме, пожалуйста, обратитесь к этой теме обсуждения .
источник
gist.githubusercontent.com
сrawgist.com
и получил это работает.Это больше не возможно. GitHub явно отключил горячую ссылку JavaScript, и более новые версии браузеров уважают этот параметр.
Heads up: поддержка заголовков nosniff для Chrome и Firefox
источник
rawgithub.com
перенаправляет наrawgit.com
Таким образом, приведенный выше пример будетhttp://rawgit.com/user/package/master/link.min.js
источник
GitHub Pages - это официальное решение GitHub для этой проблемы.
raw.githubusercontent
заставляет все файлы использоватьtext/plain
тип MIME, даже если файл является файлом CSS или JavaScript. Таким образом,https://raw.githubusercontent.com/‹user›/‹repo›/‹branch›/‹filepath›
будет не правильный MIME-тип, а обычный текстовый файл, и связывание его с помощью<link href="..."/>
или<script src="..."></script>
не будет работать - CSS не будет применяться / JS не будет работать.GitHub Pages размещает репо по специальному URL, поэтому все, что вам нужно сделать, это проверить свои файлы и нажать кнопку. Обратите внимание , что в большинстве случаев, GitHub Pages требует от вас совершить специальную отрасль,
gh-pages
.На вашем новом сайте, который, как правило
https://‹user›.github.io/‹repo›
, каждый файл, зафиксированный вgh-pages
ветке (самый последний коммит), присутствует по этому URL. Тогда вы можете сделать ссылку на свой файл JS через<script src="https://‹user›.github.io/‹repo›/file.js"></script>
, и это будет правильный тип MIME.У вас есть файлы сборки?
Лично я рекомендую запустить эту ветку параллельно
master
. Вgh-pages
ветке вы можете отредактировать свой.gitignore
файл, чтобы включить в него все файлы dist / build, которые вам нужны для вашего сайта (например, если у вас есть какие-либо минифицированные / скомпилированные файлы), при этом они игнорируются в вашейmaster
ветке. Это полезно, потому что вы обычно не хотите отслеживать изменения в файлах сборки в вашем обычном репо. Каждый раз, когда вы хотите обновить размещенные файлы, просто объединитеmaster
ихgh-pages
, пересоберите, зафиксируйте и затем нажмите.(protip: вы можете объединить и перестроить в одном коммите с этими шагами :)
источник
Приведенные выше ответы четко отвечают на вопрос, но я хочу предложить другую альтернативу - другой взгляд / подход для решения аналогичной проблемы.
Вы также можете использовать расширение браузера, чтобы удалить
X-Content-Type-Options
заголовок ответа дляraw.githubusercontent.com
файлов. Есть несколько расширений браузера для изменения заголовков ответов.Если вы используете Requestly, я могу предложить два решения
Решение 1. Используйте правило «Изменить заголовки» и удалите заголовок ответа.
меры
Remove
->Response
->X-Content-Type-Options
Url
->Contains
->raw.githubusercontent.com
Решение 2. Используйте правило замены хоста
raw.githubusercontent.com
наrawgit.com
Проверьте этот скриншот для более подробной информации
Как проверить
Мы создали простой JS Fiddle, чтобы проверить, можем ли мы использовать сырые файлы github в качестве скриптов в нашем коде. Вот скрипка со следующим кодом
Если вы видите
Script evaluated successfully!
, это означает, что вы можете использовать необработанный файл github в своем коде. В противном случае этоProblem evaluating script
означает, что существует некоторая проблема при выполнении сценария из исходного файла github.Я также написал статью в блоге Requestly об этом. Пожалуйста, обратитесь к нему для более подробной информации.
Надеюсь, поможет!!
Отказ от ответственности: я автор Requestly, так что вы можете обвинить во всем, что вам не нравится.
источник
https://raw.githack.com/
нашел этот сайт поставлять CDN для
nosniff
заголовок httpmime type
по имении этот сайт:
https://rawgit.com/
источник
Чтобы было ясно и кратко
//raw.githubusercontent.com
->//rawgit.com
Обратите внимание, что это обрабатывается хостингом разработки rawgit, а не их cdn для хостинга.
источник
https://raw.githubusercontent.com
->https://rawgit.com
В противном случае этот ответ является ясным и работает.Мой случай использования было нагрузки « Букмарклеты direclty» с моего счета Bitbucket , который имеет те же ограничения , как Github. Обходной путь, который я придумал, заключался в AJAX для сценария и запуска
eval
в строке ответа, ниже приведен фрагмент, основанный на этом подходе.Обратите внимание, что добавление
sourceURL
комментария позволяет отлаживать скрипт в инструментах разработчика браузера.источник
Когда файл загружен на github, вы можете использовать его как внешний источник или бесплатный хостинг. Трой Алфорд объяснил это намного выше. Но чтобы сделать это проще, позвольте мне рассказать вам о нескольких простых шагах, после чего вы можете использовать файл github raw на своем сайте:
Вот ссылка на ваш файл:
https://raw.githubusercontent.com/mindmup/bootstrap-wysiwyg/master/bootstrap-wysiwyg.js
Теперь для его выполнения необходимо удалить https: // и точку (.) Между raw и githubusercontent.
Нравится:
rawgithubusercontent.com/mindmup/bootstrap-wysiwyg/master/bootstrap-wysiwyg.js
Теперь, когда вы перейдете по этой ссылке, вы получите ссылку, которая может быть использована для вызова вашего JavaScript:
Вот последняя ссылка:
https://rawgit.com/mindmup/bootstrap-wysiwyg/master/bootstrap-wysiwyg.js
Точно так же, если вы размещаете файл CSS, вы должны сделать это, как указано выше. Это самый простой способ получить простую ссылку для вызова вашего внешнего файла CSS или JavaScript, размещенного на github.
Я надеюсь, что это полезно.
Ссылочный URL: http://101helper.blogspot.com/2015/11/store-blogger-codes-on-github-boost-blogger-speed.html
источник
Я обнаружил, что ошибка была показана из-за комментариев в начале файла. Вы можете решить эту проблему, просто создав свой собственный файл без комментариев и нажав git, он не показывает ошибки
Для доказательства вы можете попробовать эти два файла с одинаковым кодом легкого разбиения на страницы:
без комментариев
с комментарием
источник
У меня была та же проблема, что и у вас, я перешел на
Меня устраивает.
источник
Самый простой способ:
<script type="text/plain" src="http://raw.githubusercontent.com/user/repo/branch/file.js"></script>
обслуживается GitHub,
и
очень
надежный.С
text/plain
без
text/plain
источник
raw.github.com
это не просто необработанный доступ к файловому ресурсу, а представление, представленное Rails. Так что доступraw.github.com
гораздо тяжелее, чем нужно. Я не знаю, почемуraw.github.com
это реализовано в виде Rails. Вместо того, чтобы исправить эту проблему маршрута, GitHub добавилX-Content-Type-Options: nosniff
заголовок.Временное решение:
user.github.io/repo
источник
raw.github.com
для загрузки файлов - и затем Github понял, что они используются в качестве CDN, что вызывало у них слишком большой трафик. В результате они изменили его на этот тип рендеринга сX-Content-Type-Options: nosniff
заголовком, специально для того, чтобы люди не могли использовать их сервис таким образом.В качестве альтернативы, если вы генерируете разметку на стороне сервера, вы можете просто извлечь и ввести. Например, в JSTL вы можете сделать это:
Они не позволяют хотлинкинг по какой-то причине, поэтому, вероятно, это плохая форма, если вы хотите быть хорошим гражданином. Я бы посоветовал вам кешировать этот javascript и только периодически обновлять его по своему усмотрению.
источник
пример
оригинал
cdn.jsdelivr.net
источник