¿Cómo eliminar hashbang #!
de url?
Encontré la opción para deshabilitar hashbang en la documentación del enrutador vue ( http://vuejs.github.io/vue-router/en/options.html ) pero esta opción se elimina #!
y simplemente se pone#
¿Hay alguna manera de tener una URL limpia?
Ejemplo:
NO: #!/home
PERO: /home
vue.js
vue-router
DokiCRO
fuente
fuente
const router = new VueRouter({ history: true })
{history: true}
trabajos para la primera página, pero el resto de las rutas fallaron.Para vue.js 2 use lo siguiente:
fuente
Hash es una configuración predeterminada del modo vue-router, se establece porque con el hash, la aplicación no necesita conectar el servidor para servir la url. Para cambiarlo, debe configurar su servidor y establecer el modo en modo API de historial HTML5.
Para la configuración del servidor, este es el enlace para ayudarlo a configurar los servidores Apache, Nginx y Node.js:
https://router.vuejs.org/guide/essentials/history-mode.html
Entonces debe asegurarse de que el modo de enrutador vue esté configurado de la siguiente manera:
vue-router versión 2.x
Para ser claros, estos son todos los modos vue-router que puede elegir: "hash" | "historia" | "resumen".
fuente
Para Vuejs 2.5 y vue-router 3.0, nada de lo anterior me funcionó, sin embargo, después de jugar un poco, lo siguiente parece funcionar:
tenga en cuenta que también necesitará agregar la ruta general.
fuente
y el servidor está configurado correctamente En Apache, debe escribir la reescritura de la URL
fuente
Citando los documentos.
fuente
Los
vue-router
usoshash-mode
, en palabras simples, es algo que normalmente esperarías de una etiqueta achor como esta.Para hacer desaparecer el hash
Warning
: Si no tiene un servidor configurado correctamente o está utilizando un usuario de SPA del lado del cliente, puede obtener un404 Error
si intenta accederhttps://website.com/posts/3
directamente desde su navegador. Vue Router Docsfuente
El modo predeterminado para vue-router es el modo hash: utiliza el hash de URL para simular una URL completa para que la página no se vuelva a cargar cuando cambie la URL. Para deshacernos del hash, podemos usar el modo de historial del enrutador, que aprovecha la
history.pushState
API para lograr la navegación URL sin una recarga de página:Referencia
fuente
Y si está utilizando AWS amplify, consulte este artículo sobre cómo configurar el servidor: modo de historial del enrutador Vue y AWS Amplify
fuente