Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>Frage zum Webkit JavaScript Debugger

Frage zum Webkit JavaScript Debugger

iThinkDifferent27.08.0923:48
Hi an alle und schon mal danke im Voraus.
Ich entwickle JavaScripte und nutze dazu den integrierten Debugger von Webkit. Aus irgendwelchen Gründen zeigt er mir manchmal die Quelltexte im Fenster an, manchmal wieder nicht. Das wird wohl mit dem Hinweis "Resource interpreted as other but transferred with MIME type application/x-javascript." zu tun hat. Allerdings erscheint dieser Hinweis erst nach einem Reload der Seite und den Sinn verstehe ich auch nicht, denn das Skript wird eingebunden per <script src="bla.js" type="text/javascript"></script>.
Nun also zur Frage: Was hat das denn nun zu bedeuten? Warum erscheint ständig diese Meldung?

System: iMac 8,1 mit OS X 10.5.8
Webkit-Build:r47800 (das gleiche mit allen anderen, früheren Builds einschließlich Safari 4.0.3)

Ach ja und noch ein Hinweis: Ich binde zwei Skripte auf die gleiche Art ein. Dieser Warnhinweis erscheint immer beim letzten eingebunden Skript, egal welches von beiden das ist.
0

Kommentare

iThinkDifferent27.08.0923:53
Edit: Die Skripte laufen lokal über MAMP 1.7.
0
sierkb28.08.0900:15
Hat Dein Apache Webserver von MAMP eine Datei mime.types? Schau da mal zur Ursachenforschung rein. Oder/und in evtl. vorhandene Apache-Config-Dateien und .htaccess-Dateien, die das evtl. überschreiben könnten.
Kann es vielleicht damit zu tun haben, dass Dein Apache Webserver des MAMP-Paketes diese JavaScript-Dateien eben standardmäßig mit dem (veralteten) MIMEtype application/x-javascript ausliefert, wenn er auf die Datei-Extension .js trifft, statt mit text/javascript oder gemäß RFC4329 noch richtiger mit application/javascript?

Kann sein, dass das Problem behoben ist, indem Du MAMP (bzw. den darin enthaltenen Apache Webserver) einfach auf die aktuellste Version hebst (wo die Apache-Datei mime.types dann den aktuellen Gegebenheiten gemäß IANA-Vorgabe angepasst ist)
Oder Du schaust einfach mal in Deine jetzige mime.types rein und änderst es dort oder ggf. in einer evtl. vorhandenen .htaccess-Datei manuell. Kannst natürlich auch selber eine .htaccess-Datei anlegen und die jetzige Default-Einstellung darin überschreiben.

Die Datei mime.types sollte in /etc/apache2 zu finden sein.
Und drinstehen sollte eigentlich, JavaScript betreffend, die Zuordnung
application/javascript    js
(aktuell und gemäß RFC4329)
oder wenigstens
text/javascript    js
(veraltete, aber sehr verbreitete Schreibweise, durch RFC4329 obsolet bzw. missbilligt)

jedoch nicht
application/x-javascript    js
(völlig veraltete Schreibweise, durch RFC4329 obsolet bzw. sehr missbilligt)

Und am Besten, der Vollständigkeit halber auch noch dasselbe für ECMAScript:
application/ecmascript    ecma
0
iThinkDifferent28.08.0901:19
Danke für deine Antwort. Ich habs geändert (war tatsächlich falsch) und hab nun in mime.types
application/javascript js
stehen. Auch in der .htaccess steht nichts, was die Konfiguration beeinflussen sollte. Zur Sicherheit habe ich noch unter httpd.conf geschaut, ob da nicht
AddType application/x-javascript .js
steht. Aber nichts hat sich geändert. Immer noch wird das letzte Skript als falsch übertragen deklariert.

Server wurde selbstverständlich neu gestartet.
0
sierkb28.08.0901:57
Erscheint diese Fehlermeldung zum Beispiel auch in Firefox bzw. in dessen JavaScript-Debugger? Wenn nein, ist's wohl ein Safari-only-Problem.

Und Du kannst ausschließen, dass in Deiner JavaScript-Datei oder den JavaScript-Dateien, die Du lädst, nicht evtl. irgendwo was mit "application/x-javascript" nachgeladen wird oder so ähnlich?

Mit welchem Mimetype kommen Deine JavaScript-Dateien im Browser denn an? Lade die doch mal einzeln ins Browserfenster und lasse Dir per Informationsmenü anzeigen, mit welchem Mimetype sie tatsächlich im Browser angekommen sind. Falls es mit Safari nicht geht, nimm Firefox dafür, damit hast Du die Möglichkeit bzw. u.a. mit Hilfe des Web Developer-Toolbar-Add-Ons.

Abgesehen davon: Es könnte sich auch möglicherweise um einen Bug in Safari handeln, wenn ich mich bzgl. der Fehlermeldung mal bei Google so umschaue:
0
iThinkDifferent28.08.0912:23
Danke für deinen Tipp, es liegt tatsächlich ab Webkit. Schade, ich arbeite mit dem Debugger ganz gern, aber von Update zu Update verschlechtert er sich (Aktuell werden die Variablen nicht angezeigt, wenn das Skript pausiert wird).
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.