


How to deal with the problem that the rendered page is not reflected when Vue routing is refreshed in history mode
This time I will bring you vueroutingHow to handle the problem of rendering the page without reflection when refreshing in history mode, and how to handle the problem of rendering page without reflection when vue route is refreshed in history modeNotes What are the actual cases? Let’s take a look at them.
Solve the problem that vue-router nested routing (sub-routing) cannot render the page when refreshing in history mode. The specific content is as follows
1. Exception description
Originally, the hash mode of vue-router was used, but the URL in hash mode needs to have the "#" symbol, which not only looks uncomfortable, but also destroys the "#" in the routing in some scenarios (the WeChat sharing page will change " #"The following content is processed), so you need to use the history mode, and then let the backend change the nginx configuration:
location / { try_files $uri $uri/ /index.html; }
vue-router uses history mode and uses nested routing:
const router = new Router({ mode: 'history', routes: [ { path: '/', component: mall, name: 'mall' }, …… //我的银行卡 { path: '/myCard', meta: { requireAuth: true }, component: myCard, name: 'myCard', children:[ { path:'', component: card}, { path:'add', component: add} ] } …… ] })
When accessing the routing and nested routing pages, the display is normal, but when refreshing the page, the nested routing page has an exception:
The page style is completely messed up. Take a look at the static files loaded by the page request. All static files are 404;
2. Exception analysis
1. Read the official documentation’s description of nested routing:
2. Looking at the previous exception page again, it seems that our parent route has become the root directory. Check the file path:
3. Take a look at the exception files we introduced. They are referenced directly in the index.html file, that is, they are introduced under the root path. In the previous hash mode, the root path will not change, so it is feasible for us to directly introduce these static files in the index.html file. However, after using the history mode, the root path is not fixed. Then this introduction method is not feasible, which is why the page above cannot be rendered:
3. Solve the problem
It’s a bit awkward here. I first considered introducing static style files in the main Vue by way of Import, which was indeed feasible. However, in the end I found that it was OK to directly modify the static file introduction path in the index.html file:
Before modification:
<script src="./static/js/stomp.js"></script>
After modification
<script src="/static/js/stomp.js"></script>
4. Principle
./ refers to the current directory where the user is located (relative path);
/ refers to the root directory (absolute path, project root directory), which is the project root directory;
For hash mode, the root path is fixed, which is the root directory of the project. However, in history mode, nested paths starting with /
will be regarded as the root path, so use "./" to introduce files. The file will not be found because the file itself is in the project root directory and is not in the nested path directory.
Summary, regardless of hash mode or history mode, you can directly use "/" to introduce static files from the project root directory.
PS: I encountered this problem some time ago. After searching on Baidu for a long time, I found that few people asked this question, and no one answered it. I also asked many front-end experts, but still couldn't solve this problem. Maybe it’s because I’m used to writing “./” And the path starting with "../", I didn't notice the problem of the way to introduce static files, and tried many methods. Finally, I found out embarrassingly that the problem was actually very simple, it was just that I didn't have a thorough understanding of the underlying framework!
I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the php Chinese website!
Recommended reading:
How to connect node.js to MySQL
Detailed explanation of the steps to implement react server rendering
The above is the detailed content of How to deal with the problem that the rendered page is not reflected when Vue routing is refreshed in history mode. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











When you browse the web on your iPhone, the loaded content is temporarily stored as long as the browser app remains open. However, the website updates content regularly, so refreshing the page is an effective way to clear out old data and see the latest published content. This way, you always have the latest information and experiences. If you want to refresh the page on iPhone, the following post will explain you all the methods. How to Refresh Web Pages on Safari [4 Methods] There are several methods to refresh the pages you are viewing on the Safari App on iPhone. Method 1: Use the Refresh Button The easiest way to refresh a page you have open on Safari is to use the Refresh option on your browser's tab bar. If Safa

Is the F5 key not working properly on your Windows 11/10 PC? The F5 key is typically used to refresh the desktop or explorer or reload a web page. However, some of our readers have reported that the F5 key is refreshing their computers and not working properly. How to enable F5 refresh in Windows 11? To refresh your Windows PC, just press the F5 key. On some laptops or desktops, you may need to press the Fn+F5 key combination to complete the refresh operation. Why doesn't F5 refresh work? If pressing the F5 key fails to refresh your computer or you are experiencing issues on Windows 11/10, it may be due to the function keys being locked. Other potential causes include the keyboard or F5 key

1. First open the design plan to be rendered in Kujiale. 2. Then open top view rendering under the rendering menu. 3. Then click Orthogonal in the parameter settings in the top view rendering interface. 4. Finally, after adjusting the model angle, click Render Now to render the orthogonal top view.

Page refresh is very common in our daily network use. When we visit a web page, we sometimes encounter some problems, such as the web page not loading or displaying abnormally, etc. At this time, we usually choose to refresh the page to solve the problem, so how to refresh the page quickly? Let’s discuss the shortcut keys for page refresh. The page refresh shortcut key is a method to quickly refresh the current web page through keyboard operations. In different operating systems and browsers, the shortcut keys for page refresh may be different. Below we use the common W

Vue page rendering is asynchronous. Vue uses asynchronous rendering, which can improve performance; if asynchronous updates are not used, the current component will be re-rendered every time the data is updated. For performance reasons, Vue will asynchronously update the view after this round of data updates.

Vue error: v-html cannot be used correctly to render dynamic HTML code. How to solve it? Introduction: In Vue development, we often need to dynamically render HTML code to display rich text content or dynamically generated user input. Vue provides the v-html directive to implement this function. However, sometimes we may encounter problems that cannot correctly render dynamic HTML code using v-html. This article will explore the causes of this problem and provide solutions. Problem description: In Vue, when we use v

The pre-knowledge single-page application (SPA-singlepage application) only returns the unique html page and its public static resources when the page is loaded for the first time. Subsequent page jumps will not get the html file from the server. (Hash and history routing implement browser URL changes without refreshing the page) Hash routing example: www.baidu.com/#/home. Originally hash is used to control the page view in combination with anchor points. When the value after # changes The page will not be re-requested, which is mainly achieved through the window's onhashchange method. Compared with hash routing, the most intuitive change of history routing is

The solution to the value disappearing after the react page is refreshed: 1. Refresh the page and check whether the data in the state will be cleared; 2. Use the "const name = location.query.name; const id = location.query.id;" method By adding parameters to the jump link, you can pass the parameters and refresh the page without losing the data.
