No cabeçalho da minha página HTML, tenho:
<script src="https://raw.github.com/cloudhead/less.js/master/dist/less-1.3.3.js"></script>
Quando carrego a página no meu navegador (Google Chrome v 27.0.1453.116) e habilito as ferramentas de desenvolvedor, ele diz:
Recusou-se a executar o script em ' https://raw.github.com/cloudhead/less.js/master/dist/less-1.3.3.js ' porque seu tipo MIME ('text / plain') não é executável e a verificação estrita do tipo MIME está ativada.
De fato, o script não será executado. Por que o Chrome acha que este é um arquivo de texto sem formatação? Claramente, tem uma .js
extensão de arquivo.
Como estou usando HTML5, omiti o type
atributo, então pensei que isso poderia estar causando o problema. Então eu adicionei type="text/javascript"
à <script>
tag e obtive o mesmo resultado. Eu até tentei type="application/javascript"
e ainda tenho o mesmo erro.
Então eu tentei mudar para type="text/plain"
apenas por curiosidade. O navegador não retornou um erro, mas é claro que o JavaScript também não foi executado.
Finalmente, pensei que os períodos no nome do arquivo estivessem jogando o navegador fora. Então, no meu código HTML, mudei todos os períodos para o caractere de escape da URL %2E
:
<script src="https://raw.github.com/cloudhead/less%2Ejs/master/dist/less-1%2E3%2E3.js"></script>
Isso ainda não funcionou. A única coisa que realmente funciona (ou seja, o navegador não dá erro e o JS é executado com êxito) é se eu fizer o download do arquivo, carregá-lo em um diretório local e depois alterar o src
valor para o arquivo local. Prefiro não fazer isso, pois estou tentando economizar espaço no meu próprio site.
Como faço para o Chrome reconhecer que o arquivo vinculado é realmente um tipo JavaScript?
fonte
Dezembro de 2018
Agora, o RawGit está desativando devido ao uso mal-intencionado; portanto, eles recomendam o uso de um dos seguintes serviços:
Postagem original
O Rawgithub.com permite aos usuários pegar as versões "Raw" de um Git e transformá-lo em um URL utilizável em
<script>
tags. É muito fácil de usar, basta remover o primeiro.
do URL bruto. Por exemplo, isto:se tornaria isso
e então você o coloca em uma
<script>
tag com o tipo apropriado. Que simples!Eles limitam o número de solicitações, porque se destinam apenas a fins de desenvolvimento, não a produção.
2014 editar
Como Reinderien mencionou, o rawgithub agora é apenas rawgit, então o novo link do script seria
fonte
A extensão do arquivo é irrelevante, é o cabeçalho do tipo de conteúdo que importa e esse arquivo é fornecido com um
text/plain
tipo de conteúdo (que é o objetivo da exibição "bruta" do Github).Você realmente deve baixar uma cópia do arquivo localmente no seu site e incluí-lo a partir daí. Mesmo que funcione no Github, como você não carrega o arquivo JS de forma assíncrona, colocar essa
<script>
tag no cabeçalho da página torna seu site dependente da disponibilidade do Github.fonte
Esse é um recurso intencional projetado para impedir certos ataques XSS .
Como Mike West explica , não use
raw.github.com
como CDN; use as páginas do GitHub .Além disso, a codificação explícita de caracteres não reservados não altera a maneira como a URL é tratada.
fonte
Como bybe ressalta, o problema é que quase todo o conteúdo exibido pelo raw.github.com é enviado como um arquivo de texto - dessa forma, o conteúdo é renderizado em texto sem formatação no seu navegador sem que outros aplicativos ou problemas atrapalhem. Caso contrário, você entraria na situação em que a tentativa de visualizar um arquivo .js pode fazer com que o navegador tente executá-lo, em vez de mostrá-lo.
Além disso, nem o github nem o pages.github estão tentando ser uma CDN. Você realmente deve:
fonte