¿Como generar paginas estáticas en Laravel?

  • Autor Autor nano133
  • Fecha de inicio Fecha de inicio
N

nano133

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Buenas,

tengo un proyecto en laravel, pero por lo que he estado leyendo. Para crear paginas estáticas han de realizar una llamada a la base de datos y devolver una consulta ya que está estructurado para hacer paginas dinámicas?

es así o entendí mal?

Es muy difícil de hacer esas paginas?
 
No solo tienes que colocar tus paginas estáticas en public, oh depende a lo que llames paginas estaticas porque muy bien puedes crear un vista y devolver una view con una plantilla html sin mas.
 
Pues Laravel es un poco pesado al usar llamadas a la BD...
 
Buenas,

tengo un proyecto en laravel, pero por lo que he estado leyendo. Para crear paginas estáticas han de realizar una llamada a la base de datos y devolver una consulta ya que está estructurado para hacer paginas dinámicas?

es así o entendí mal?

Es muy difícil de hacer esas paginas?

Eso es falso, tienes que crear una ruta y luego el controlador y si quieres mostrar algo la vista pero no necesitas la base de datos XD
 
Buenas,

tengo un proyecto en laravel, pero por lo que he estado leyendo. Para crear paginas estáticas han de realizar una llamada a la base de datos y devolver una consulta ya que está estructurado para hacer paginas dinámicas?

es así o entendí mal?

Es muy difícil de hacer esas paginas?
Es fácil hacer paginas estáticas en Laravel ya hay packages para eso o puedes usar soluciones hechas con PHP.

Respecto a las queries a la BD eso no es problema simplemente cacheas las consultas. Hay varios métodos para hacer eso, dependiendo de tu tipo de proyecto seleccionas la estrategia mas adecuada.
 
No hace faltan paquetes adicionales, si tu página es html simplemente creala en la carpeta /public y estará disponible. Por ejemplo, example.html podrás entrar en url-proyecto/example.html.

Por otra parte, si es una vista con algo de PHP, puedes crear una ruta en routes/web.php

Route::get('/example', function () { return view('example'); });


Creas la vista en resources/views/example.blade.php
 
No hace faltan paquetes adicionales, si tu página es html simplemente creala en la carpeta /public y estará disponible. Por ejemplo, example.html podrás entrar en url-proyecto/example.html.

Por otra parte, si es una vista con algo de PHP, puedes crear una ruta en routes/web.php

Route::get('/example', function () { return view('example'); });


Creas la vista en resources/views/example.blade.php
eso sigue siendo un pagina dinámica, ya que se genera con Blade y todo el engine de Laravel.

Cuando es una pagina "estática" es un archivo generado un "archivo final/salida" con todo el contenido ya renderizado. Laravel hace a medias eso para ahorrar recursos. Yo uso Varnish por ejemplo para eso.
 
eso sigue siendo un pagina dinámica, ya que se genera con Blade y todo el engine de Laravel.

Cuando es una pagina "estática" es un archivo generado un "archivo final/salida" con todo el contenido ya renderizado. Laravel hace a medias eso para ahorrar recursos. Yo uso Varnish por ejemplo para eso.

Laravel automaticamente cachea todo, tienes que leer la documentación: https://laravel.com/docs/10.x/cache

Por lo que sí, es estática.
 
eso sigue siendo un pagina dinámica, ya que se genera con Blade y todo el engine de Laravel.

Cuando es una pagina "estática" es un archivo generado un "archivo final/salida" con todo el contenido ya renderizado. Laravel hace a medias eso para ahorrar recursos. Yo uso Varnish por ejemplo para eso.

Sigue siendo estática. El contenido no cambia cada vez que se carga.
 
Laravel automaticamente cachea todo, tienes que leer la documentación: https://laravel.com/docs/10.x/cache

Por lo que sí, es estática.
Claro que Laravel hace el cache de views, pero es un cache a medias. Tengo proyectos con millones de usuarios diarios. A la home entran casi 3M de visitas diarias. Asi que tengo que super optimizar todo.

Comparando el cache de varnish con el de Laravell, varnish es mejor. El "cache estatico" de laravel es a medias por eso digo que no es estático.

Sigue siendo estática. El contenido no cambia cada vez que se carga.
mmmm que te digo, depende que entendemos por estática. Estático es un archivo con todo ya renderizado. o me equivoco? Solo html,js y el browser lo imprime, nada de uso de backend, nada de PHP, compiladores etc.

Laravel cuando hace el cache de las views las almacena en /storage, si te fijas en el archivo de lo que almacena en el cache de las views, sigue existiendo variables para interpretar. Por lo tanto Laravel sigue usando su engine y "compilando" cosas para generar la vista final y eso no es estático del 100%. Es un estático a medias, una forma de ahorrar recursos si ... pero no la mas eficiente del todo para millones de views. Para unas miles de visitas si funciona bien.

Port ejemplo en la vista tienes
<loc>{{ $tag->url }}</loc>
en el archivo de cache
<loc><?php echo e($tag->url); ?></loc>

Por favor corríjanme si me equivoco que estamos para aprender.
 
Última edición:
Claro que Laravel hace el cache de views, pero es un cache a medias. Tengo proyectos con millones de usuarios diarios. A la home entran casi 3M de visitas diarias. Asi que tengo que super optimizar todo.

Comparando el cache de varnish con el de Laravell, varnish es mejor. El "cache estatico" de laravel es a medias por eso digo que no es estático.


mmmm que te digo, depende que entendemos por estática. Estático es un archivo con todo ya renderizado. o me equivoco? Solo html,js y el browser lo imprime, nada de uso de backend, nada de PHP, compiladores etc.

Laravel cuando hace el cache de las views las almacena en /storage, si te fijas en el archivo de lo que almacena en el cache de las views, sigue existiendo variables para interpretar. Por lo tanto sigue Laravel sigue usando su engine y "compilando" cosas para generar la vista final y eso no es estático del 100%. Es un estático a medias, una forma de ahorrar recursos si ... pero no la mas eficiente del todo para millones de views. Para unas miles de visitas si funciona bien.

Por favor corríjanme si me equivoco que estamos para aprender.

El compañero preguntó como hacer página estáticas en Laravel y le dí dos soluciones. Yo nunca hablé del caché. Que detrás funcione de manera dinámica o llamarlo estático a medias en eso tienes razón, pero a la vista del frontend es una página estática. Es decir, que la página siempre sea la misma y no esté afectada por ningun parámetro o factor.
 
Claro que Laravel hace el cache de views, pero es un cache a medias. Tengo proyectos con millones de usuarios diarios. A la home entran casi 3M de visitas diarias. Asi que tengo que super optimizar todo.

Comparando el cache de varnish con el de Laravell, varnish es mejor. El "cache estatico" de laravel es a medias por eso digo que no es estático.


mmmm que te digo, depende que entendemos por estática. Estático es un archivo con todo ya renderizado. o me equivoco? Solo html,js y el browser lo imprime, nada de uso de backend, nada de PHP, compiladores etc.

Laravel cuando hace el cache de las views las almacena en /storage, si te fijas en el archivo de lo que almacena en el cache de las views, sigue existiendo variables para interpretar. Por lo tanto Laravel sigue usando su engine y "compilando" cosas para generar la vista final y eso no es estático del 100%. Es un estático a medias, una forma de ahorrar recursos si ... pero no la mas eficiente del todo para millones de views. Para unas miles de visitas si funciona bien.

Port ejemplo en la vista tienes
<loc>{{ $tag->url }}</loc>
en el archivo de cache
<loc><?php echo e($tag->url); ?></loc>

Por favor corríjanme si me equivoco que estamos para aprender.

Eso es cierto, pero dices que tienes memcache y ya con eso renderiza.
Si quieres algo más, te recomiendo ver este package: https://github.com/tighten/jigsaw
 
Atrás
Arriba