重新加载页面说该页面不存在 netlify
Reload page says that the page does not exist netlify
我有一个网站,其中包含一些博客页面,人们可以在其中 post 提出问题,其他人可以对其发表评论。
但是当我转到问题路线时,当路线与数据库中保存的 slug 相同时,它会从 firebase 获取数据(这不是一个很好的方法)。数据显示给浏览器,但如果您重新加载页面,netlify 会说找不到该页面,这是一个主要问题。
我正在从 mounted()
生命周期加载数据,最好在 asyncdata()
上执行此操作
这是我的代码:
mounted() {
self = this;
const issues = firebase.database().ref('Issues/')
issues.once('value', function(snapshot){
snapshot.forEach(function(childSnapshot) {
const data = childSnapshot.exportVal()
if(self.$nuxt.$route.path == "/Issues/"+data.Slug || self.$nuxt.$route.path == "/issues/"+data.Slug ) {
self.allIssuetitels.push(data.Titel)
self.allIssueonderwerpen.push(data.Onderwerp)
self.allteksten.push(data.Tekst)
self.user = data.User
self.profielfoto = data.Profielfoto
self.Slug = data.Slug
}
})
})
const reacties = firebase.database().ref('/Reacties')
reacties.once('value', function(snapshot) {
snapshot.forEach(function(childSnapshot) {
const data = childSnapshot.exportVal()
if(self.$nuxt.$route.path == '/Issues/'+data.Slug || self.$nuxt.$route.path == '/issues/'+data.Slug) {
self.reaprofielfoto.push(data.Profielfoto)
self.reauser.push(data.User)
self.allreacties.push(data.Reactie)
}
})
})
},
当我在本地测试它时,它没有给我找不到页面的错误。有什么办法可以解决这个问题吗?
这是它不起作用的地方:
https://angry-lalande-a5e5eb.netlify.app/issues/3
对于这样的事情,您允许用户创建新页面并拥有大量用户生成的经常更新的内容,您最好研究一下服务器端呈现。
https://vuejs.org/v2/guide/ssr.html
我建议,如果你想这样做,你应该迁移到 Nuxt,因为它使这样的事情变得容易得多。
但是,使用 SSR 有很多注意事项 - 特别是您需要 运行 并管理服务器。
如果你不想研究SSR,你可以使用动态路由as shown here
const router = new VueRouter({
routes: [
// dynamic segments start with a colon
{ path: '/issue/:id', component: Issue }
]
})
然后您可以让 Issue
组件在获取内容时显示骨架加载器或其他加载指示器。
我有一个网站,其中包含一些博客页面,人们可以在其中 post 提出问题,其他人可以对其发表评论。
但是当我转到问题路线时,当路线与数据库中保存的 slug 相同时,它会从 firebase 获取数据(这不是一个很好的方法)。数据显示给浏览器,但如果您重新加载页面,netlify 会说找不到该页面,这是一个主要问题。
我正在从 mounted()
生命周期加载数据,最好在 asyncdata()
这是我的代码:
mounted() {
self = this;
const issues = firebase.database().ref('Issues/')
issues.once('value', function(snapshot){
snapshot.forEach(function(childSnapshot) {
const data = childSnapshot.exportVal()
if(self.$nuxt.$route.path == "/Issues/"+data.Slug || self.$nuxt.$route.path == "/issues/"+data.Slug ) {
self.allIssuetitels.push(data.Titel)
self.allIssueonderwerpen.push(data.Onderwerp)
self.allteksten.push(data.Tekst)
self.user = data.User
self.profielfoto = data.Profielfoto
self.Slug = data.Slug
}
})
})
const reacties = firebase.database().ref('/Reacties')
reacties.once('value', function(snapshot) {
snapshot.forEach(function(childSnapshot) {
const data = childSnapshot.exportVal()
if(self.$nuxt.$route.path == '/Issues/'+data.Slug || self.$nuxt.$route.path == '/issues/'+data.Slug) {
self.reaprofielfoto.push(data.Profielfoto)
self.reauser.push(data.User)
self.allreacties.push(data.Reactie)
}
})
})
},
当我在本地测试它时,它没有给我找不到页面的错误。有什么办法可以解决这个问题吗?
这是它不起作用的地方: https://angry-lalande-a5e5eb.netlify.app/issues/3
对于这样的事情,您允许用户创建新页面并拥有大量用户生成的经常更新的内容,您最好研究一下服务器端呈现。
https://vuejs.org/v2/guide/ssr.html
我建议,如果你想这样做,你应该迁移到 Nuxt,因为它使这样的事情变得容易得多。
但是,使用 SSR 有很多注意事项 - 特别是您需要 运行 并管理服务器。
如果你不想研究SSR,你可以使用动态路由as shown here
const router = new VueRouter({
routes: [
// dynamic segments start with a colon
{ path: '/issue/:id', component: Issue }
]
})
然后您可以让 Issue
组件在获取内容时显示骨架加载器或其他加载指示器。