Ссылке и выполнить внешний файл JavaScript, размещенный на GitHub
когда я пытаюсь изменить связанную ссылку локального файла JavaScript на необработанную версию GitHub, мой тестовый файл перестает работать. Ошибка:
отказался выполнять скрипт из ... потому что его тип MIME (
text/plain
) не является исполняемым, и включена строгая проверка типа MIME.
есть ли способ отключить это поведение или есть служба, которая позволяет ссылаться на файлы GitHub raw?
рабочая код:
<script src="bootstrap-wysiwyg.js"></script>
нерабочий код:
<script src="https://raw.github.com/mindmup/bootstrap-wysiwyg/master/bootstrap-wysiwyg.js"></script>
13 ответов
здесь и хороший обходной путь для этого, теперь, используя rawgit.com.
шаги:
- найдите свою ссылку на GitHub и нажмите на "Raw" версию файла.
- скопируйте URL-адрес и ссылку на него.
- изменить
raw.githubusercontent.com
torawgit.com
(непроизводственные) илиcdn.rawgit.com
(производства)
пример:
http://raw.githubusercontent.com/user/repo/branch/file.js
используйте этот URL для разработка:
http://rawgit.com/user/repo/branch/file.js
используйте этот URL в производстве:
http://cdn.rawgit.com/user/repo/tag/file.js
для производственных сред, рассмотрите таргетинг на определенный тег или commit-hash, а не на ветку. RawGit никогда обновляет файл, хранящийся по заданному пути, после его кэширования - поэтому ссылка на файл по имени ветви приведет к тому, что ваша ссылка никогда не будет обновляться - даже если вы сделаете дополнительные коммиты. Ссылка на файл с помощью commit-hash или тега делает ссылку уникальной для версия.
зачем это нужно?
GitHub начал использовать X-Content-Type-Options: nosniff
, который предписывает более
современные браузеры для обеспечения строгой проверки типа MIME. Затем он возвращает raw
файлы типа MIME, возвращаемые сервером, не позволяют браузеру использовать
файл по назначению (если браузер соблюдает настройки).
на фоне по этой теме, пожалуйста, обратитесь к этой теме.
Это больше невозможно. GitHub явно отключил JavaScript hotlinking и более новые версии браузеров уважают эту настройку.
Heads up: поддержка заголовка nosniff приходит в Chrome и Firefox
rawgithub.com
перенаправляет на rawgit.com
таким образом, приведенный выше пример теперь будет
http://rawgit.com/user/package/master/link.min.js
чтобы сделать вещи ясно и коротко
//raw.githubusercontent.com
-->//rawgit.com
обратите внимание, что это обрабатывается хостингом разработки rawgit, а не их cdn для производственного хостинга
выше ответы четко отвечают на вопрос, но я хочу предоставить другую альтернативу-другой взгляд / подход для решения аналогичной проблемы.
вы также можете использовать расширение для браузера, чтобы удалить X-Content-Type-Options
заголовок ответ для raw.githubusercontent.com
файлы. Есть несколько расширений браузера для изменения заголовков ответов.
если вы используете Requestly, я могу предложить два решения
Решение 1: Используйте правило изменить заголовки и удалите заголовок ответа
шаги
- установите Requestly от http://www.requestly.in
- на Правила Страницы
- нажмите на значок Добавить, чтобы создать правило
- Выберите Изменить Заголовки
- дайте имя и Descripton
- выберите
Remove
->Response
->X-Content-Type-Options
- в поле Источник введите
Url
->Contains
->raw.githubusercontent.com
решение 2: Используйте Replace host Rule
- установите Requestly от http://www.requestly.in
- на Правила Страницы
- нажмите на значок Добавить, чтобы создать правило
- заменить
raw.githubusercontent.com
Сrawgit.com
проверить это скриншот для более подробной информации
Как проверить
мы создали простую скрипку JS, чтобы проверить, можем ли мы использовать необработанные файлы github в качестве скриптов в нашем коде. Вот это Скрипка со следующим кодом
<center id="msg"></center>
<script src="https://raw.githubusercontent.com/sachinjain024/practicebook/master/web-extensions-master/storage/background.js"></script>
<script>
try {
if (typeof BG.Methods !== 'undefoned') {
document.getElementById('msg').innerHTML = 'Script evaluated successfully!';
}
} catch (e) {
document.getElementById('msg').innerHTML = 'Problem evaluating script';
}
</script>
если вы видите Script evaluated successfully!
, это означает, что вы можете использовать файл raw github в своем коде
В противном случае Problem evaluating script
указывает, что есть некоторые проблемы при выполнении сценария из исходного кода GitHub.
I также написал статьи on Requestly blog об этом. Пожалуйста см. Его для больше деталей.
надеюсь, что это помогает!!
отказ от ответственности: я автор книги Requestly так что вы можете обвинять во всем, что вам не нравится.
мой прецедент был для загрузки'букмарклеты' direclty из моей учетной записи Bitbucket, которая имеет те же ограничения, что и Github. Работа, которую я придумал, заключалась в AJAX для скрипта и run eval
в строке ответа ниже фрагмент основан на этом подходе.
<script>
var sScriptURL ='<script-URL-here>';
var oReq = new XMLHttpRequest();
oReq.addEventListener("load",
function fLoad() {eval(this.responseText + '\r\n//# sourceURL=' + sScriptURL)});
oReq.open("GET", sScriptURL); oReq.send(); false;
</script>
обратите внимание, что добавление sourceURL
комментарий позволяет отлаживать скрипт в инструментах разработчика браузера.
нашел этот сайт поставить CDN для
- удалить
nosniff
HTTP-заголовок - исправить
mime type
по ext name
и этот сайт:
когда файл загружен на 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, он не показывает ошибки
для доказательства вы можете попробовать эти два файла с тем же кодом простой разбиения на страницы:
raw.github.com
не очень сырые доступ к файлу актива,
но вид, представленный рельсами.
Так что доступ raw.github.com
намного тяжелее, чем необходимо.
Не знаю почему!--0--> реализован как вид Rails.
Вместо того, чтобы исправить эту проблему маршрута, GitHub добавил
кроме того, при создании серверной части разметки вы можете просто извлечь и ввести. Например, в JSTL вы можете сделать следующее:
<script type="text/javascript">
<c:import url="https://raw.github.com/mindmup/bootstrap-wysiwyg/master/bootstrap-wysiwyg.js" />
</script>
они не позволяют hotlinking по причине, поэтому, вероятно, плохой тон, если вы хотите быть хорошим гражданином. Я бы предложил вам кэшировать этот javascript и только периодически повторно извлекать, как вы считаете нужным.
У меня была та же проблема, что и у вас, что я сделал, это изменить на
<script type="application/javascript" src="bootstrap-wysiwyg.js"></script>
это работает для меня.