2012-04-28 14 views
26

Possible Duplicate:
@font-face not working on a client site?fuente CSS definida no encontrado

tengo los siguientes ficheros en esta estructura de carpetas de mi aplicación web ASP.Net MVC:

- [root]

| - Pública

|| --fonts

||| --NuvoWeb-Medi.eot

||| --NuvoWeb-Medi.woff

En mi archivo CSS tengo la siguiente declaración de la fuente:

@font-face 
{ 
    font-family: NuvoWeb; 
    src: url(/Public/fonts/NuvoWeb-Medi.eot); 
} 
@font-face 
{ 
    font-family: NuvoWeb; 
    src: url(/Public/fonts/NuvoWeb-Medi.woff) format('woff'); 
} 

Sin embargo, cuando ejecuto la aplicación, Firebug devuelve el siguiente error:

"NetworkError: 404 Not Found - http://localhost:60194/Public/fonts/NuvoWeb-Medi.woff "

Por favor asesoren sobre lo que me falta para que esto funcione.

+1

¿Ha intentado visitar esta url? Tal vez no hay archivos? –

+0

Como dije, tengo esos archivos en la estructura de carpetas indicada; Definitivamente están ahí cuando abro la carpeta en el Explorador de Windows. Y si hago clic en el enlace, obtengo esta respuesta: HTTP Error 404.3 - No encontrado La página que está solicitando no puede publicarse debido a la configuración de la extensión. Si la pagina es un script, agregue un controlador. Si el archivo debe descargarse, agregue un mapa MIME. –

+0

¿Entonces los archivos están en la carpeta, pero no son servidos por el servidor? Y ese es un problema de servidor, no CSS, ¿estoy en lo cierto? –

Respuesta

66

encontrado la solución here ...

El problema es que IIS no sabe cómo servir a estos nuevos archivos a menos que decirle cómo. Esto se puede hacer fácilmente en la década de web.config en la sección del web.config <system.webServer> añadiendo el siguiente fragmento:

<staticContent> 
    <mimeMap fileExtension=".mp4" mimeType="video/mp4" /> 
    <mimeMap fileExtension=".m4v" mimeType="video/m4v" /> 
    <mimeMap fileExtension=".ogg" mimeType="video/ogg" /> 
    <mimeMap fileExtension=".ogv" mimeType="video/ogg" /> 
    <mimeMap fileExtension=".webm" mimeType="video/webm" /> 
    <mimeMap fileExtension=".oga" mimeType="audio/ogg" /> 
    <mimeMap fileExtension=".spx" mimeType="audio/ogg" /> 
    <mimeMap fileExtension=".svg" mimeType="image/svg+xml" /> 
    <mimeMap fileExtension=".svgz" mimeType="image/svg+xml" /> 
    <remove fileExtension=".eot" /> 
    <mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" /> 
    <mimeMap fileExtension=".otf" mimeType="font/otf" /> 
    <mimeMap fileExtension=".woff" mimeType="application/font-woff" /> 
</staticContent> 

Tenga en cuenta que algunas de estas extensiones ya puede manejarse en IIS (para mí, estaba bien .svg) Debe eliminar esos mapas de esta sección o incluir líneas adicionales <remove>, como la de .eot.

+1

Por alguna razón, al agregar estos a mi web.config para un sitio alojado dentro de la Rackspace Cloud se rompe todo mi CSS, como si ya no se reconociera el archivo CSS. ¿Alguna pista de por qué sucedería eso? –

+0

Esto es tan popular para el día de la gente.Por algún motivo, intenté agregar la regla del manejador de archivos para los archivos OTF. –

+2

gracias por su ayuda útil! –

2

carpeta pública (CSS aquí) ---> carpeta de fuentes (Font aquí -NuvoWeb-Medi.eot)

@font-face 
{ 
    font-family: 'NuvoWeb'; 
    src: url(fonts/NuvoWeb-Medi.eot); 
} 

estabas perdido el símbolo de cotización font-family: 'NuvoWeb';

7

registrar el tipo MIME en web.config de la siguiente manera:

<system.webServer> 
    <staticContent> 
     <remove fileExtension=".eot" /> 
     <mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" /> 
    </staticContent> 
</system.webServer> 

Esto resuelve el problema.

+0

si me puede ayudar, dígame cómo actualizar el archivo web.config a través de ftp. Soy nuevo para el servidor IIS. O dígame por favor "¿puedo hacerlo? ¿O necesito pedirle a mi soporte de alojamiento web eso?" –