Acabo de resolver este problema y he encontrado una solución.
Como respuesta a la pregunta de Martjin, el problema es que estos caracteres URF-8 BOM invalidan el javascript cuando el cliente espera ASCII puro. Entonces dirá que hay un error en char 1, línea 1 o algo así, básicamente, justo al comienzo del archivo porque hace que el archivo de código parezca que hay un error tipográfico en los primeros bytes del script.
En mi caso, tengo un sitio en IIS que es una aplicación ASP.NET, y una aplicación debajo que también es una aplicación ASP.NET. Esto causó algunas complicaciones con la herencia de web.configs, y la solución fue poner una etiqueta que niega la herencia a partir de ese momento.
Luego descubrí que todos mis .js en el sitio secundario estaban arrojando un error para ese estúpido símbolo de codificación UTF-8 que eran los primeros 3 bytes de cada archivo. Estoy razonablemente seguro de que se debe a cierta confusión en los httphandlers de mi solución de 2 niveles para web.configs.
Mi solución, sin embargo, era convertir los archivos .js a ASCII puro, ya que eso era lo que IIS estaba enviando y el cliente esperaba. Para mí, tengo un build.bat que copia todos los archivos web, elimina cualquier control de fuente y archivos de proyecto y los coloca en un directorio de compilación final para copiar en el servidor de prueba o producción. Hice una modificación a esa secuencia de comandos para convertir también todos los archivos .js a formato ASCII.
Se utiliza una combinación de DOS por lotes (porque ahí es donde empecé) y PowerShell (porque esa es la única manera que encontré para convertir sin añadir aún más programas de utilidad):
conjunto DIRTOCONVERT = cualquier camino que lo quieren para convertir todos los archivos para ECHO eliminar UTF-8 BOM chars ï »? desde el frente de los archivos para/r% DIRTOCONVERT% %% g en (* .js) do ( powershell -command "gc -en utf8 \" %% g \ "| Out-File -en ascii. \ tmp.txt ". movimiento/y \ tmp.txt "%% g" )
Nota, unas pocas personas en línea (incluso en stackoverflow) tuvo la idea de tratar: tipo badfile.txt> goodfile.txt
pero eso todavía transporta la codificación UTF-8. Aparentemente, no solía hacer eso.
Me pregunto si los personajes podrían ser el líder de Unicode? – Pointy
@Pointy: Ellos son. Esa es la lista de materiales UTF-8. – Martijn
Usted dice que su script no funciona. Eso no es muy específico. ¿Qué error estás recibiendo? ¿Qué esperabas que sucediera, pero no lo hiciste? ¿Qué informan la consola JavaScript, Firebug, Javascript Debugger y esas herramientas? – Martijn