Cómo obtener el enlace de la página actual en Astro
- 316Palabras
- 2Minutos
- 07 Aug, 2024
En Astro, a veces necesitamos obtener la dirección de la página actual para realizar redirecciones u otros procesos. Astro proporciona algunas herramientas y variables globales útiles que pueden ayudarnos a lograr este objetivo.
Usar Astro.url.pathname
Astro ofrece Astro.url.pathname
, un objeto global que contiene la ruta de URL de la solicitud actual. Podemos usarlo en los componentes de la página para obtener el enlace de la página actual. Por ejemplo:
1---2import { Astro } from "astro";3const currentPath = Astro.url.pathname;4---5
6<!doctype html>7<html lang="en">8 <head>9 <meta charset="UTF-8" />10 <meta name="viewport" content="width=device-width, initial-scale=1.0" />11 <title>My Astro Blog</title>12 </head>13 <body>14 <h1>Bienvenido a mi blog</h1>15 <p>Enlace de la página actual: {currentPath}</p>16 </body>17</html>
Usar Astro.request.url
Otra forma es utilizar Astro.request.url
para obtener la URL completa de la página actual. Esto es muy útil cuando se necesita la URL completa. Por ejemplo:
1---2import { Astro } from "astro";3const currentUrl = Astro.request.url;4---5
6<!doctype html>7<html lang="en">8 <head>9 <meta charset="UTF-8" />10 <meta name="viewport" content="width=device-width, initial-scale=1.0" />11 <title>My Astro Blog</title>12 </head>13 <body>14 <h1>Bienvenido a mi blog</h1>15 <p>URL completa de la página actual: {currentUrl}</p>16 </body>17</html>
Usar slug
en Frontmatter
Astro proporciona la información de ruta slug
para las páginas generadas a partir de markdown, que podemos usar para construir el enlace de la página. Por ejemplo:
1---2title: "Mi artículo del blog"3---
En el componente de la página, podemos usarlo de la siguiente manera:
1---2import { Astro } from "astro";3const { slug } = Astro.props;4const currentPath = `/posts/${slug}`;5---6
7<!doctype html>8<html lang="en">9 <head>10 <meta charset="UTF-8" />11 <meta name="viewport" content="width=device-width, initial-scale=1.0" />12 <title>My Astro Blog</title>13 </head>14 <body>15 <h1>Bienvenido a mi blog</h1>16 <p>Ruta de la página actual: {currentPath}</p>17 </body>18</html>
Conclusión
Podemos elegir diferentes métodos para obtener el enlace de la página actual en Astro según nuestras necesidades. Ya sea utilizando los objetos globales proporcionados por Astro o la información en Frontmatter, podemos acceder a la información de la URL actual en las páginas generadas.