Ссылке и выполнить внешний файл 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.

шаги:

  1. найдите свою ссылку на GitHub и нажмите на "Raw" версию файла.
  2. скопируйте URL-адрес и ссылку на него.
  3. изменить raw.githubusercontent.com to rawgit.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 файлы. Есть несколько расширений браузера для изменения заголовков ответов.

  1. Requestly: Chrome + Firefox
  2. Изменить Заголовки: В Firefox

если вы используете Requestly, я могу предложить два решения

Решение 1: Используйте правило изменить заголовки и удалите заголовок ответа

шаги

  1. установите Requestly от http://www.requestly.in
  2. на Правила Страницы
  3. нажмите на значок Добавить, чтобы создать правило
  4. Выберите Изменить Заголовки
  5. дайте имя и Descripton
  6. выберите Remove ->Response ->X-Content-Type-Options
  7. в поле Источник введите Url ->Contains ->raw.githubusercontent.com

решение 2: Используйте Replace host Rule

  1. установите Requestly от http://www.requestly.in
  2. на Правила Страницы
  3. нажмите на значок Добавить, чтобы создать правило
  4. заменить raw.githubusercontent.com С rawgit.com

проверить это скриншот для более подробной информацииenter image description here

Как проверить

мы создали простую скрипку 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 комментарий позволяет отлаживать скрипт в инструментах разработчика браузера.


https://raw.githack.com/

нашел этот сайт поставить CDN для

  • удалить nosniff HTTP-заголовок
  • исправить mime type по ext name

и этот сайт:

https://rawgit.com/


когда файл загружен на 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


самый простой способ:
<script type="text/plain" src="http://raw.githubusercontent.com/user/repo/branch/file.js"></script>
Обслуживается GitHub,
и

очень

надежный.
С text/plain
enter image description here Без text/plain
enter image description here

Я обнаружил, что ошибка была показана из-за комментариев в начале файла , вы можете решить эту проблему , просто создав свой собственный файл без комментариев и нажмите на 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>

это работает для меня.