Home Web Front-end JS Tutorial How to deal with the problem that the rendered page is not reflected when Vue routing is refreshed in history mode

How to deal with the problem that the rendered page is not reflected when Vue routing is refreshed in history mode

Apr 13, 2018 am 10:51 AM
history refresh rendering

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; }
Copy after login

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}
   ]
  }
   ……
 ]
})
Copy after login

When accessing the routing and nested routing pages, the display is normal, but when refreshing the page, the nested routing page has an exception:

vue router嵌套路由在history模式下刷新无法渲染页面问题怎么办?vue router嵌套路由在history模式下刷新无法渲染页面问题怎么办?

The page style is completely messed up. Take a look at the static files loaded by the page request. All static files are 404;

vue router嵌套路由在history模式下刷新无法渲染页面问题怎么办?

2. Exception analysis

1. Read the official documentation’s description of nested routing:

vue router嵌套路由在history模式下刷新无法渲染页面问题怎么办?

2. Looking at the previous exception page again, it seems that our parent route has become the root directory. Check the file path:

vue router嵌套路由在history模式下刷新无法渲染页面问题怎么办?

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:

vue router嵌套路由在history模式下刷新无法渲染页面问题怎么办?

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>
Copy after login

After modification

<script src="/static/js/stomp.js"></script>
Copy after login

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!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

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

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1662
14
PHP Tutorial
1261
29
C# Tutorial
1234
24
6 Ways to Refresh Web Pages on iPhone 6 Ways to Refresh Web Pages on iPhone Feb 05, 2024 pm 02:00 PM

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

F5 refresh key not working in Windows 11 F5 refresh key not working in Windows 11 Mar 14, 2024 pm 01:01 PM

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

How to render orthogonal top view in Kujiale_Tutorial on rendering orthogonal top view in Kujiale How to render orthogonal top view in Kujiale_Tutorial on rendering orthogonal top view in Kujiale Apr 02, 2024 pm 01:10 PM

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.

How to quickly refresh a web page? How to quickly refresh a web page? Feb 18, 2024 pm 01:14 PM

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

Is vue page rendering synchronous or asynchronous? Is vue page rendering synchronous or asynchronous? Dec 13, 2022 pm 07:26 PM

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? Vue error: v-html cannot be used correctly to render dynamic HTML code. How to solve it? Aug 19, 2023 pm 12:27 PM

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

How does Nginx solve the 404 problem of page refresh in history mode? How does Nginx solve the 404 problem of page refresh in history mode? May 13, 2023 pm 02:40 PM

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

What should I do if the value disappears after the react page is refreshed? What should I do if the value disappears after the react page is refreshed? Dec 29, 2022 am 11:11 AM

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.

See all articles