Recurso interpretado como Script, mas transferido com tipo MIME text / plain - para arquivo local

97

Estou recebendo um aviso "Recurso interpretado como script, mas transferido com texto / simples do tipo MIME" no Google Chrome ao incluir um arquivo de script local.

Eu sei que o problema aparece ao carregar um arquivo de um servidor ou através de ajax, que na maioria das vezes depende de cabeçalhos errados sendo configurados.

O estranho é que recebo este aviso, embora seja executado a partir de uma pasta local: file:///C:/test/foo.html

Isso acontece apenas no Chrome com o html mais básico que existe:

<!DOCTYPE html>
    <html>
    <head>
        <script type="text/javascript" src="bar.js"></script>
    </head>
    <body>
    </body>
</html>

bar.js também é o mais simples possível:

function hello() {}

Tentei adicionar uma metatag:

<meta http-equiv="content-script-type" content="text/javascript">

e testado com outros doctypes, mas nada parece ajudar.

Isso obviamente não é um problema real, já que os scripts ainda funcionam bem, mas estou trabalhando em um grande projeto e atualmente tenho cerca de 150 scripts incluídos. Portanto, é difícil ver quando um aviso real ocorre entre eles.

Tudo funciona bem quando executo o arquivo em um servidor, local ou remoto.

Alguma idéia de por que o cromo está me incomodando com isso?

batzkoo
fonte
você não instalou o Visual Studio mais recente outro dia, não é? Isso começou a acontecer comigo e foi a única coisa que mudou ...
Simon Sarris
sim, VS Express 2012 RC algumas semanas atrás. Pensei nisso também, então criei os arquivos com o notepad ++, mas o problema continua o mesmo. Se o VS está causando isso, eles devem ter alterado alguma configuração / parâmetro global? A pergunta é o quê e como faço para alterá-lo de volta?
batzkoo
Ainda estou tentando descobrir a mesma coisa. Parece ser uma coisa global e aconteceu precisamente depois que instalei o VS2012. Eu te aviso se eu descobrir alguma coisa. Para ser claro, não uso o Visual Studio para edição de arquivos, o que o torna mais estranho.
Simon Sarris de

Respostas:

195

Eu descobri!

O instalador do Visual Studio deve ter adicionado uma linha incorreta ao registro.

abra regedite dê uma olhada nesta chave de registro:

insira a descrição da imagem aqui

Veja essa chave? A chave do tipo de conteúdo? mude seu valor de text / plain para text / javascript.

Finalmente, o cromo pode respirar facilmente.

Devo observar que nem o Content Type nem o PercievedType estão lá por padrão no Windows 7, então você provavelmente poderia excluir ambos com segurança, mas o mínimo que você precisa fazer é essa edição.

De qualquer forma, espero que isso corrija para você também!

Simon Sarris
fonte
8
Bem feito você! por encontrar a solução para esse incômodo. Não excluí a chave, mas alterei o valor dos dados para text / javascript. Obrigado!
batzkoo
haha mudei para text / script e não funcionou, talvez eu devesse ter tentado text / javascript!
Simon Sarris
Obrigado pela solução! Eu tive o mesmo problema ... Na verdade com o tipo MIME simples / texto para mim o código javascript gerou erros. Eu tinha algumas cadeias de caracteres (em uma matriz) contendo letras encontradas na codificação UTF-8 vistas em idiomas da Europa Oriental, como "ő". "Gergő" é um bom nome comum húngaro. Os erros também desapareceram, graças a Deus, já que não consegui executar meu código - mas não investiguei mais isso.
Zoltan
2
Uau, como você descobriu essa solução?
Pakman
4
@Pakman Tive o problema um dia, depois comprei um computador novo e não tive o problema. Então, quando instalei o Visual Studio 2012, percebi que ele reapareceu, então percebi que era o culpado. Achei que isso mudou algo nas associações de arquivo do registro porque todos os meus .jsarquivos tinham .txtícones semelhantes, então fui verificar se eles estavam associados ao tipo de dados correto. Eles não eram!
Simon Sarris
30

Tentei consertar esse problema usando esse método, mas não funcionou para mim.

Meu problema era que o gerenciador do IIS não tinha tipos MIME nos recursos HTTP.

Consegui ativá-lo habilitando o Contexto estático via ...

-> Painel de Controle

-> Programas

-> Ativar ou desativar recursos do Windows

-> Serviços de Informações da Internet

-> Serviços da World Wide Web

-> Recursos HTTP comuns

-> [X] Conteúdo estático.

Depois disso, os tipos MIME apareceram e tudo começou a funcionar novamente.

user2383049
fonte
0

A resposta aceita é ótima! No entanto, apenas para postar uma resposta para aqueles que encontram problemas como eu, que às vezes usa um computador do departamento / faculdade, onde não tenho permissão para alterar nenhum valor de chave no regedit.

mudança

<script type="text/javascript" src="main.js"></script>

para

<script src="main.js"></script>

Embora a mensagem de erro ainda exista, a página foi carregada corretamente.

Richard Wong
fonte
2
Mas o problema de OP é que a página carrega corretamente, mas ele ainda recebe uma mensagem de erro. Isso não parece mudar nada.
Teepeemm