Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   CSS con IdHTTPServer (https://www.clubdelphi.com/foros/showthread.php?t=62214)

chalao 11-12-2008 09:58:08

CSS con IdHTTPServer
 
Estoy trabajando con los componentes indy, en concreto con el servidor http. Tengo mis páginas almacenadas en disco (*.html) y estas están diseñadas con una hoja de estilos (*.css) también almacenada en disco.

Al grano:
A las peticiones por parte de un navegador de las páginas (pagina.html) yo respondo con:

Código Delphi [-]
AResponseInfo.ServeFile(AContext, ExtractFilePath( Application.ExeName ) + 'html/pagina.html' )

Al estar asociadas a las páginas su correspondiente hoja de estilo, recibo otro get pidiendo el documento hoja.css al que yo respondo de igual manera:

Código Delphi [-]
AResponseInfo.ServeFile(AContext, ExtractFilePath( Application.ExeName ) + 'html/hoja.css')
Aunque el navegador me muestra la página sin estilo.

Alguien sabe a que es debido esto?

Muchas gracias de antemano.
Saludos...

chalao 11-12-2008 20:01:57

nadie sabe de esto?:confused:

chalao 15-12-2008 17:31:58

Perdón por ser tan insistente, hice mal la pregunta??

Ñuño Martínez 15-12-2008 17:54:59

Parece que el error está en la parte del cliente. Asegúrate de que el navegador no tiene desactivada las hojas de estilo. Asegúrate, también, de que realmente descarga lo que debe y no otra cosa. Si usas Firefox, instálate la extensión Firebug o alguna similar para esto.

La verdad es que no sé por qué se me ha ocurrido entrar y leer este hilo, porque yo de Indy ni idea. Tienes suerte. ;)

chalao 15-12-2008 18:12:37

Gracias por tu respuesta.

El cliente pide la hoja de estilo que se le indica en el codigo html
Código:

<link rel="stylesheet" href="3col_leftNav.css" type="text/css" />
y el servidor le responde con el archivo en cuestion "3col_leftNav.css"

El código html está hecho con Dreamweaver8 y la hoja de estilo es una de las que vienen de ejemplo. Abriendo el archivo localmente con IE o Firefox se habre correctamente (con estilo) teniendo el archivo .css en el mismo directorio.

Tengo instalado el Firebug 1.2.1 y cuando habro el html con Firefox y lo inspecciono, dentro del código html está todo el código de la hoja de estilo.css correcto, osea:
Código:


<link rel="stylesheet" href="3col_leftNav.css" type="text/css">
//CODIGO DE LA HOJA DE ESTILO (*.CSS)
</link>

de esta forma. Con lo cual supongo que si copio el código del css dentro de cada html que utiliza esa hoja de estilo probablemente se recibieran bien pero quiero enviar los archivos html y los css por separado y que el cliente los integre bien como ocurre localmente.

No se si me expliqué bien, pero pregunten si no.
Gracias.
Saludosss

Ñuño Martínez 16-12-2008 11:38:38

La cuestión es saber si tu programa le envía el archivo correcto. Si es así, el navegador no debería tener problemas en mostrar la página como tú quieres.

Otro problema podría estar en la cabecera del archivo enviado. Por lo que sé, las páginas web son "text/xhtml" y los estilos "text/css", pero no basta con que el parámetro "type" de la etiqueta <link /> lo indique, el servidor debe indicar este tipo. Con PHP se consigue utilizando "header ('type: text/css');", pero desconozco cómo se hace con Indy. De todas formas me parece raro que Firefox no sea capaz de procesar el archivo de estilos si lo recibe correctamente.

chalao 16-12-2008 12:37:36

Cita:

Empezado por Ñuño Martínez (Mensaje 331098)
La cuestión es saber si tu programa le envía el archivo correcto. Si es así, el navegador no debería tener problemas en mostrar la página como tú quieres.

Otro problema podría estar en la cabecera del archivo enviado. Por lo que sé, las páginas web son "text/xhtml" y los estilos "text/css", pero no basta con que el parámetro "type" de la etiqueta <link /> lo indique, el servidor debe indicar este tipo. Con PHP se consigue utilizando "header ('type: text/css');", pero desconozco cómo se hace con Indy. De todas formas me parece raro que Firefox no sea capaz de procesar el archivo de estilos si lo recibe correctamente.

Muchisimas gracias Ñuño.
Le enviaba el archivo correcto pero como tu bien decias el servidor tiene que especificar el tipo 'text/css'. De la forma:
Código Delphi [-]
AResponseInfo.ContentType := 'text/css';
Con mi corta experiencia en Indy -Html yo creia que con lla etiqueta <link /> donde tb viene especificado bastaría pero no era así.

Gracias por tu tiempo. ;):)

Ñuño Martínez 16-12-2008 13:48:50

De nada, hombre. También ha sido algo de inspiración divina. Y ya sabes, "Hoy por tí, mañana por mí". :)


La franja horaria es GMT +2. Ahora son las 23:14:46.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi