vue.js - Vuejs - 本地链接有效,但部署链接后出现错误 404 - 找不到文件或目录
问题描述
不知道为什么当我在本地运行我的 Vue 应用程序时,导航栏链接有效。但是部署后,它得到一个错误
404 - File or directory not found.
The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.
当我检查它时,我得到:
- 当地的 -
<a data-v-5e628c52="" href="/students" class="md-opjjpmhoiojifppkkcdabiobhakljdgm_doc">Students</a>
- 服务器 -
<a data-v-9b8548a0="" href="/students" class="md-opjjpmhoiojifppkkcdabiobhakljdgm_doc">Students</a>
这是我的 App.vue:
<template>
<div id="app">
<Header
name=""
:navLinks="[
{
name: 'Home',
link: '/',
dropdown: false
},
{ name: 'Students', link: '/students', dropdown: false }
]"
/>
<router-view />
<Footer />
</div>
</template>
<script>
import Header from "./components/layout/Header";
export default {
name: "app",
components: {
Header
}
};
</script>
和我的 Header.vue
<template>
<div>
<nav>
<div v-if="name" id="logo">
{{ name }}
</div>
<div v-else id="logo">
<img alt="Vue logo" src="../../assets/stevelogo.png" width="50" />
</div>
<ul class="nav-links">
<li v-for="list in navLinks" :key="list.key">
<a v-if="list.dropdown === false" :href="list.link">{{
list.name
}}</a>
<div class="dropdown-link" v-else>
<a :href="list.link">
{{ list.name }}
<span>↓</span>
</a>
</div>
</li>
</ul>
<div v-on:click="openMobileNav()" id="burger">
<div class="line1"></div>
<div class="line2"></div>
<div class="line3"></div>
</div>
</nav>
</div>
</template>
<script>
export default {
name: "Header",
};
</script>
解决方案
Vue 应用程序(或 React 或 Angular)中有两种类型的环境
- 发展
- 生产
当您在端口 8000 上运行开发服务器时,所有请求都由开发服务器处理,但是当您部署应用程序时,所有请求都必须进入 dist/index.html 或 build/index.html(取决于您的构建配置)
您可以尝试使用以下构建命令在 netlify.com 上部署应用程序
CI='' npm run build && echo "/* /index.html 200" > dist/_redirects
否则,对于您当前的部署,您需要更改部署的配置,以便 /* 之后的所有请求都转到 dist/index.html
推荐阅读
- c# - 如何在 C# 中删除文本框的第一行
- php - 如何实现array_filter() 更清晰
- angular - 如何引用例如带有哈希 #content 的 ng-template
- android - 访问 ActivityResult 上的公共下载文件 Android 28 Samsung Galaxy S9+ (Verizon)
- java - 从 JNI 运行时 Java ShutdownHook 无法加入主线程
- javascript - 动画跑完后可以倒放吗?
- c# - 无法在 Visual Studio 2017 中引用 Windows IoT
- javascript - 给下拉链接一个功能
- neo4j - Neo4j Cypher 关系语法
- sql - 总和列,但对于每一行