Zasób interpretowany jako skrypt, ale przesyłany z tekstem typu MIME / zwykły - dla pliku lokalnego


97

Otrzymuję ostrzeżenie „Zasób zinterpretowany jako skrypt, ale przesłany z typem MIME tekst / zwykły” w przeglądarce Google Chrome, gdy dołączam lokalny plik skryptu.

Wiem, że problem pojawia się podczas ładowania pliku z serwera lub przez AJAX, co najczęściej zależy od ustawienia niewłaściwych nagłówków.

Dziwne jest to, że otrzymuję to ostrzeżenie, mimo że jest uruchamiane z lokalnego folderu: file:///C:/test/foo.html

Dzieje się tak tylko w Chrome z najbardziej podstawowym kodem HTML:

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

bar.js jest również tak prosty, jak tylko może:

function hello() {}

Próbowałem dodać metatag:

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

i przetestowany z innymi typami dokumentów, ale nic nie wydaje się pomagać.

To oczywiście nie jest prawdziwy problem, ponieważ skrypty nadal działają dobrze, ale pracuję nad dużym projektem i obecnie mam około 150 dołączonych skryptów. W związku z tym trudno jest zobaczyć, kiedy między nimi pojawia się rzeczywiste ostrzeżenie.

Wszystko działa dobrze, gdy uruchamiam plik na serwerze, lokalnie lub zdalnie.

Jakieś pomysły, dlaczego Chrome mnie tym denerwuje?


nie zdarzyło ci się, że niedawno zainstalowałeś najnowszą wersję Visual Studio, prawda? To zaczęło się przydarzyć mnie i to jedyna rzecz, która się zmieniła ...
Simon Sarris,

tak, VS Express 2012 RC kilka tygodni temu. Też o tym myślałem, więc utworzyłem pliki za pomocą notatnika ++, ale problem pozostaje ten sam. Jeśli VS to powoduje, to musieli zmienić jakieś globalne ustawienie / parametr? Pytanie brzmi: co i jak mogę to zmienić z powrotem?
batzkoo

Nadal próbuję wymyślić to samo. Wydaje się, że jest to sprawa globalna i stało się dokładnie po zainstalowaniu VS2012. Dam ci znać, jeśli coś wymyślę. Żeby było jasne, w rzeczywistości nie używam Visual Studio do edycji plików, co czyni go dziwniejszym.
Simon Sarris,

Odpowiedzi:


195

Rozgryzłem to!

Instalator programu Visual Studio musiał dodać błędny wiersz do rejestru.

otwórz regediti spójrz na ten klucz rejestru:

wprowadź opis obrazu tutaj

Widzisz ten klucz? Klucz typu treści? zmień jego wartość z text / plain na text / javascript.

Wreszcie chrom znów może odetchnąć.

Powinienem zauważyć, że ani Typ zawartości, ani PercievedType nie są dostępne domyślnie w systemie Windows 7, więc prawdopodobnie możesz bezpiecznie usunąć oba, ale minimum, które musisz zrobić, to ta edycja.

W każdym razie mam nadzieję, że to też rozwiąże problem!


8
Dobra robota! za znalezienie rozwiązania tej irytacji. Nie usunąłem klucza, ale zamiast tego zmieniłem wartość danych na tekst / javascript. Dzięki!
batzkoo

haha Zmieniłem to na tekst / skrypt i nie działa, może powinienem był spróbować text / javascript!
Simon Sarris

Dzięki za rozwiązanie! Miałem ten sam problem ... Właściwie w przypadku zwykłego / tekstowego typu MIME kod javascript wyrzucił błędy. Miałem kilka ciągów znaków (w tablicy) zawierających litery znalezione w kodowaniu UTF-8 widoczne w językach wschodnioeuropejskich, takich jak „ő”. „Gergő” to miłe imię węgierskiego pochodzenia. Dzięki Bogu błędy również zniknęły, ponieważ nie mogłem uruchomić kodu - ale nie badałem tego dalej.
Zoltan

2
Wow, jak odkryłeś to rozwiązanie?
Pakman,

4
@Pakman Pewnego dnia miałem problem, potem kupiłem nowy komputer i nie miałem problemu. Następnie, kiedy zainstalowałem Visual Studio 2012, zauważyłem, że pojawił się on ponownie, więc doszedłem do wniosku, że to był winowajca. Pomyślałem, że zmieniło to coś w skojarzeniach plików rejestru, ponieważ wszystkie moje .jspliki miały .txtwyglądające ikony, więc upewniłem się, że są one powiązane z odpowiednim typem danych. Nie byli!
Simon Sarris,

30

Próbowałem rozwiązać ten problem za pomocą tej metody, ale to nie zadziałało.

Mój problem polegał na tym, że menedżer IIS nie miał typów MIME w funkcjach HTTP.

Udało mi się go włączyć, włączając Kontekst statyczny przez ...

-> Panel sterowania

-> Programy

-> Włącz lub wyłącz funkcje systemu Windows

-> Internetowe usługi informacyjne

-> Usługi WWW

-> Wspólne funkcje HTTP

-> [X] Treść statyczna.

Potem pojawiły się typy MIME i wszystko znów zaczęło działać.


0

Przyjęta odpowiedź jest świetna! Jednak wystarczy opublikować odpowiedź dla tych, którzy napotykają problem, jak ja, którzy czasami używają komputera na wydziale / uczelni, gdzie nie mam uprawnień do zmiany jakiejkolwiek wartości klucza w regedit.

Zmiana

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

do

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

Mimo że komunikat o błędzie nadal istnieje, strona została załadowana poprawnie.


2
Ale problem OP polega na tym, że strona ładuje się poprawnie, ale nadal otrzymuje komunikat o błędzie. Wydaje się, że to niczego nie zmienia.
Teepeemm
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.