cargar fuentes a pagina web desde sd

Hola!

Estoy utilizando el shield de Ethernet y webServer. Tengo la web guardada en la tarjeta SD. El caso es, que quiero cambiarle la fuente a mi pagina web haciendo uso de:

<style>
@font-face {
    font-family: Bugslife;
    src: url(abugslife.ttf);
}
</style>

Tengo guardado el archivo abugslife.ttf en la SD. Cuando abro el archivo web.html desde el ordenador, las fuentes se cargan perfectamente. Sin embargo, cuando meto la tarjeta SD en arduino no funciona.

¿Existe alguna solución? Gracias de antemano.

Saludos y Bienvenido.

No se te puede ayudar mucho ya que para simular tu codigo o implementarlo tenemos primero que tener el codigo.

Usa el tag para codigo y cuelga tu codigo en un post. Asi tendras mejor ayuda.

EDITADO: No era para este post la respuesta anterior.

El código original no es este, pero prácticamente hace esto:

#include <SPI.h>
#include <Ethernet.h>
#include <SD.h>


byte mac[] = {
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
};
IPAddress ip(192, 168, 1, 177);
EthernetServer server(80);
File webFile;


void setup() {
  
  Ethernet.begin(mac,ip);
  server.begin();
  while(!SD.begin(4)) delay(10);
  
}


void loop() {

  EthernetClient client = server.available();
  if (client) {
    
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        
        if (c == '\n' && currentLineIsBlank) {
	  webFile = SD.open("html.txt");
          while (webFile.available()) client.write(webFile.read());
          webFile.close();
          break;
        }
        if (c == '\n') {
          currentLineIsBlank = true;
        }
        else if (c != '\r') {
          currentLineIsBlank = false;
        }
      }
    }
    delay(1);
    client.stop();
  }
}

No entiendo que es el link que me has pasado. Para que sirve?

Muchas gracias :slight_smile:

Esto no es tan sencillo como estás entendiendo, en el ordenador, toma la fuente de la carpeta donde tienes el html, en un servidor (ej. apache) este la serviría por http al navegador. Arduino mandando html por un socket no es un servidor, de modo que no sigue links a menos que tu lo hagas en el código, de modo que tendrías que hacer que arduino, cuando reciba la solicitud de la fuente desde la conexión del navegador la sirva (o linkas la fuente una URL de un servidor que pueda servirla al navegador)

josemaX:
Esto no es tan sencillo como estás entendiendo, en el ordenador, toma la fuente de la carpeta donde tienes el html, en un servidor (ej. apache) este la serviría por http al navegador. Arduino mandando html por un socket no es un servidor, de modo que no sigue links a menos que tu lo hagas en el código, de modo que tendrías que hacer que arduino, cuando reciba la solicitud de la fuente desde la conexión del navegador la sirva (o linkas la fuente una URL de un servidor que pueda servirla al navegador)

Entonces, cuando llegara aquí:

@font-face {
    font-family: Bugslife;
    src: url(fuentes/abugslife.ttf); <<<<<<<<<<<<
}

Debería mandar el archivo? Como puedo hacerlo? Aún ando un poco perdido.
Se me ha ocurrido subirlo a google drive (link de descarga directa) y poner la url, pero no funciona :’(

Gracias!

Y si pruebas desde el mismo ordenador como antes, pero eliminas la fuente de la carpeta y usas el link a Google Drive funciona?

No se que tipos de enlaces son (como responde el navegador a ellos), porque no lo he usado nunca.

Si pones el enlace directamente en el campo de direcciones del navegador, se descarga automáticamente?

Podías probar a poner un enlace de algún sitio que descargue el archivo a ver que pasa o buscar un alojamiento gratuito y enlazarlo desde ahí.

Si, los links son de descarga directa. Si haces click, automáticamente se descarga el archivo.

He probado en el ordenador y tampoco funciona.

Si no encuentramos solución, haré screenshoots y las pegaré. Aunque es un poco chapuza...

Gracias por tu tiempo

De nada.

Podrías poner el archivo html completo?

Una forma de colocarlos seria:

    @font-face {
      font-family: "Bitstream Vera Serif Bold";
      src: url("http://developer.mozilla.org/@api/deki/files/2934/=VeraSeBd.ttf");
    }

Pero tendrias que buscar una dirección valida para tu fuente.

No funciona :(. Ni intentado insertar la fuente que me has pasado, ni con en enlace anterior que he subido yo.

Gracias!

Lo he preguntado en el foro en ingles y a funcionado.

SOLUCIÓN

Gracias por todo!