Quando tento alterar a referência vinculada de um arquivo JavaScript local para uma versão bruta do GitHub, meu arquivo de teste para de funcionar. O erro é:
Recusou-se a executar o script de ... porque seu tipo MIME (
text/plain
) não é executável e a verificação estrita do tipo MIME está ativada.
Existe uma maneira de desativar esse comportamento ou existe um serviço que permite vincular aos arquivos brutos do GitHub?
Código de trabalho:
<script src="bootstrap-wysiwyg.js"></script>
Código que não funciona:
<script src="https://raw.github.com/mindmup/bootstrap-wysiwyg/master/bootstrap-wysiwyg.js"></script>
javascript
github
AuthorProxy
fonte
fonte
rawgit
o cache nunca é atualizado .Respostas:
Não é uma boa solução para este, agora, usando jsdelivr.net .
Passos :
raw.githubusercontent.com
paracdn.jsdelivr.net
/gh/
antes do seu nome de usuário.branch
nome@version
(se você não fizer isso, receberá a versão mais recente - o que pode causar armazenamento em cache a longo prazo)Exemplos :
Use este URL para obter a versão mais recente:
Use este URL para obter uma versão específica ou confirmar o hash:
Para ambientes de produção , considere direcionar uma tag específica ou commit-hash em vez da ramificação. O uso do link mais recente pode resultar em cache de longo prazo do arquivo, fazendo com que seu link não seja atualizado à medida que você pressiona novas versões. Vincular a um arquivo por commit-hash ou tag torna o link exclusivo para a versão.
Por que isso é necessário?
Em 2013, o GitHub começou a usar
X-Content-Type-Options: nosniff
, o que instrui os navegadores mais modernos a impor a verificação estrita do tipo MIME. Em seguida, ele retorna os arquivos brutos em um tipo MIME retornado pelo servidor, impedindo que o navegador use o arquivo como pretendido (se o navegador atender à configuração).Para informações sobre este tópico, consulte este tópico de discussão .
fonte
gist.githubusercontent.com
comrawgist.com
e tenho que trabalhar.Isto não é mais possível. O GitHub desativou explicitamente a hotlinking do JavaScript, e as versões mais recentes dos navegadores respeitam essa configuração.
Atenção: o suporte de cabeçalho nosniff está chegando ao Chrome e Firefox
fonte
rawgithub.com
redireciona pararawgit.com
Então o exemplo acima agora seriahttp://rawgit.com/user/package/master/link.min.js
fonte
Páginas do GitHub é a solução oficial do GitHub para esse problema.
raw.githubusercontent
faz com que todos os arquivos usem otext/plain
tipo MIME, mesmo se o arquivo for um arquivo CSS ou JavaScript. Portantohttps://raw.githubusercontent.com/‹user›/‹repo›/‹branch›/‹filepath›
, não será o tipo MIME correto, mas um arquivo de texto simples e vinculá-lo via<link href="..."/>
ou<script src="..."></script>
não funcionará - o CSS não será aplicado / o JS não será executado.O GitHub Pages hospeda seu repositório em um URL especial, então tudo que você precisa fazer é fazer o check-in de seus arquivos e enviar por push. Observe que, na maioria dos casos, as páginas do GitHub exigem que você se comprometa com um ramo especial
gh-pages
,.No seu novo site, normalmente
https://‹user›.github.io/‹repo›
, todos os arquivos confirmados nagh-pages
ramificação (a confirmação mais recente) estão presentes nesse URL. Então, você pode vincular ao seu arquivo js via<script src="https://‹user›.github.io/‹repo›/file.js"></script>
, e este será o tipo MIME correto.Você tem arquivos de compilação?
Pessoalmente, minha recomendação é executar esse ramo paralelamente
master
. Nogh-pages
ramificação, você pode editar seu.gitignore
arquivo para fazer o check-in de todos os arquivos dist / build necessários para o seu site (por exemplo, se você possui arquivos compactados / minificados), mantendo-os ignorados em suamaster
ramificação. Isso é útil porque você normalmente não deseja acompanhar as alterações nos arquivos de compilação no seu repositório regular. Toda vez que você quiser atualizar seus arquivos hospedados, simplesmente fundirmaster
emgh-pages
, reconstruir, cometer, e empurre.(protip: você pode mesclar e reconstruir no mesmo commit com estas etapas :)
fonte
As respostas acima respondem claramente à pergunta, mas quero fornecer outra alternativa - Uma visão / abordagem diferente para resolver o problema semelhante.
Você também pode usar a extensão do navegador para remover o
X-Content-Type-Options
cabeçalho de resposta dosraw.githubusercontent.com
arquivos. Existem algumas extensões do navegador para modificar os cabeçalhos de resposta.Se você usar Requestly, posso sugerir duas soluções
Solução 1: use a regra Modificar cabeçalhos e remova o cabeçalho de resposta
Passos
Remove
->Response
->X-Content-Type-Options
Url
->Contains
->raw.githubusercontent.com
Solução 2: use Substituir regra do host
raw.githubusercontent.com
porrawgit.com
Verifique esta captura de tela para obter mais detalhes
Como testar
Criamos um JS Fiddle simples para testar se podemos usar arquivos brutos do github como scripts em nosso código. Aqui está o Fiddle com o seguinte código
Se você vê
Script evaluated successfully!
, significa que você pode usar o arquivo github bruto no seu código. Caso contrário,Problem evaluating script
indica que há algum problema ao executar o script a partir da fonte bruta do github.Também escrevi um artigo no blog Requestly sobre isso. Consulte-o para mais detalhes.
Espero que ajude!!
Isenção de responsabilidade: sou autor de Requestly. Portanto, você pode culpar qualquer coisa que não gostar.
fonte
https://raw.githack.com/
encontrou este site fornecer uma CDN para
nosniff
cabeçalho httpmime type
pelo nome exte este site:
https://rawgit.com/
fonte
Para tornar as coisas claras e curtas
//raw.githubusercontent.com
->//rawgit.com
Observe que isso é tratado pela hospedagem de desenvolvimento do rawgit e não pelo CDN para hospedagem de produção
fonte
https://raw.githubusercontent.com
->https://rawgit.com
Caso contrário, essa resposta é mais clara e funciona.Meu caso de uso foi carregar o direclty ' bookmarklets ' da minha conta do Bitbucket, que possui as mesmas restrições do Github. O trabalho ao redor que eu criei foi o AJAX para o script e executado
eval
na sequência de respostas, abaixo do snippet é baseado nessa abordagem.Observe que a adição de
sourceURL
comentários deve permitir a depuração do script nas ferramentas de desenvolvedor do navegador.fonte
Quando um arquivo é carregado no github, você pode usá-lo como fonte externa ou hospedagem gratuita. Troy Alford explicou isso bem acima. Mas, para facilitar, deixe-me dizer algumas etapas fáceis, você pode usar um arquivo bruto do github em seu site:
Aqui está o link do seu arquivo:
https://raw.githubusercontent.com/mindmup/bootstrap-wysiwyg/master/bootstrap-wysiwyg.js
Agora, para executá-lo, você deve remover https: // e o ponto (.) Entre raw e githubusercontent
Como isso:
rawgithubusercontent.com/mindmup/bootstrap-wysiwyg/master/bootstrap-wysiwyg.js
Agora, quando você visitar este link, receberá um link que pode ser usado para chamar seu javascript:
Aqui está o link final:
https://rawgit.com/mindmup/bootstrap-wysiwyg/master/bootstrap-wysiwyg.js
Da mesma forma, se você hospedar um arquivo css, deverá fazê-lo conforme mencionado acima. É a maneira mais fácil de obter um link simples para chamar seu arquivo css ou javascript externo hospedado no github.
Espero que isto seja útil.
URL de referência: http://101helper.blogspot.com/2015/11/store-blogger-codes-on-github-boost-blogger-speed.html
fonte
Descobri que o erro foi mostrado devido aos comentários no início do arquivo. Você pode resolver esse problema, simplesmente criando seu próprio arquivo sem comentar e pressionando o git, ele não mostra erro
Como prova, você pode tentar esses dois arquivos com o mesmo código de paginação fácil:
sem comentários
com comentário
fonte
Eu tive o mesmo problema que você, o que fiz foi mudar para
Funciona para mim.
fonte
Maneira mais simples:
<script type="text/plain" src="http://raw.githubusercontent.com/user/repo/branch/file.js"></script>
Servido pelo GitHub
e
muito
confiável.Com
text/plain
Sem
text/plain
fonte
raw.github.com
não é um acesso verdadeiramente bruto ao recurso de arquivo, mas uma exibição renderizada pelo Rails. Portanto, acessarraw.github.com
é muito mais pesado que o necessário. Não sei por queraw.github.com
é implementado como uma visualização do Rails. Em vez de corrigir esse problema de rota, o GitHub adicionou umX-Content-Type-Options: nosniff
cabeçalho.Gambiarra:
user.github.io/repo
fonte
raw.github.com
para carregar arquivos - e o github percebia que eles estavam sendo usados como CDN, o que lhes causava muito tráfego. Como resultado, eles mudaram para esse tipo de renderização com oX-Content-Type-Options: nosniff
cabeçalho, especificamente para impedir que as pessoas usem seus serviços dessa maneira.Como alternativa, se você gerar sua marcação no lado do servidor, basta buscar e injetar. Por exemplo, no JSTL, você pode fazer isso:
Eles não permitem hotlinking por um motivo, então provavelmente são de má forma se você quiser ser um bom cidadão. Eu sugiro que você armazene em cache esse javascript e só volte a buscar periodicamente conforme achar melhor.
fonte
Exemplo
original
cdn.jsdelivr.net
fonte