feat(portfolio): mise à jour du site avec de nouvelles sections et améliorations SEO
- Révision des métadonnées dans index.html pour un meilleur référencement. - Ajout de nouvelles sections : FAQ, Témoignages, Services, et CTA. - Intégration de données structurées pour les FAQ et les témoignages. - Amélioration du fichier robots.txt pour un meilleur contrôle d'indexation. - Mise à jour du sitemap.xml avec de nouvelles URLs. - Ajout de nouveaux composants Vue.js pour les sections de témoignages et de services. - Amélioration des styles CSS pour une meilleure présentation des sections. - Ajout de la gestion des dates et des témoignages dans le composant testimonials.
This commit is contained in:
@@ -34,6 +34,16 @@ const router = createRouter({
|
||||
path: '/fiverr',
|
||||
name: 'fiverr',
|
||||
component: () => import('../views/FiverrPage.vue')
|
||||
},
|
||||
// TODO: page 404
|
||||
{
|
||||
path: '/:pathMatch(.*)*',
|
||||
name: 'not-found',
|
||||
component: HomePage,
|
||||
meta: {
|
||||
title: 'Page non trouvée - 404',
|
||||
description: 'La page que vous recherchez n\'existe pas. Retournez à l\'accueil pour découvrir mes services.'
|
||||
}
|
||||
}
|
||||
],
|
||||
scrollBehavior(to, from, savedPosition) {
|
||||
@@ -58,6 +68,27 @@ const router = createRouter({
|
||||
}
|
||||
})
|
||||
|
||||
// SEO Meta tags handler
|
||||
router.beforeEach((to, from, next) => {
|
||||
// Update document title
|
||||
if (to.meta?.title) {
|
||||
document.title = to.meta.title as string
|
||||
}
|
||||
|
||||
// Update meta description
|
||||
if (to.meta?.description) {
|
||||
let metaDescription = document.querySelector('meta[name="description"]')
|
||||
if (!metaDescription) {
|
||||
metaDescription = document.createElement('meta')
|
||||
metaDescription.setAttribute('name', 'description')
|
||||
document.head.appendChild(metaDescription)
|
||||
}
|
||||
metaDescription.setAttribute('content', to.meta.description as string)
|
||||
}
|
||||
|
||||
next()
|
||||
})
|
||||
|
||||
// Additional scroll to top handler for better compatibility
|
||||
router.afterEach(() => {
|
||||
// Use nextTick to ensure the DOM is fully updated
|
||||
|
Reference in New Issue
Block a user