Vue Router On Page Refresh Gets 404
Solution 1:
you can use hash mode inested of history mode to resolve the problem on your router
let router = newRouter({
mode: "hash",
routes: [
{
//and the urls with path on here ...
Solution 2:
This is related to how the history mode in Vue Router works. I have created a writeup about it, with a solution as well.
Depends on your server implementation you need to enable URL Rewrites there. Here's how this would be implemented using Express/Node.js:
const express = require('express');
const app = express();
const port = 80;
const buildLocation = 'dist';
app.use(express.static(`${buildLocation}`));
app.use((req, res, next) => {
if (!req.originalUrl.includes(buildLocation)) {
res.sendFile(`${__dirname}/${buildLocation}/index.html`);
} else {
next();
}
});
app.listen(port, () =>console.info(`Server running on port ${port}`));
For more info, check out https://blog.fullstacktraining.com/404-after-refreshing-the-browser-for-angular-vue-js-app/. HTH
Solution 3:
if any one of is facing the issue even after trying above solution, please find below method.
If you have vue.config.js
which has
module.exports = {
publicPath: process.env.PUBLIC_URL || "", // <-- this is wrong
...
};
either remove the vue.config.js or try removing the publicPath from the exports object.
Also you can try below method if you dont want to remove the publicPath
module.exports = {
publicPath: process.env.PUBLIC_URL || "/", // <-- this is correct now (and default)
transpileDependencies: ["vuetify"],
};
Solution 4:
We have resolved this on backend, we have filter where we intercept the request and redirect it to home page. We have made it configurable.
Post a Comment for "Vue Router On Page Refresh Gets 404"