我正在学习nodejs和部署。在localhost上,这个简单的应用程序运行良好,但当我部署到服务器上时,只有主路由(“/”)起作用。其他路径(即“/blogs”、““/blogs/create”等)不起作用。我的css文件也没有呈现。
错误消息是:找不到此服务器上找不到请求的url。此外,尝试使用errordocument处理请求时遇到404 not found错误。
我怀疑问题出在路径或简单的打字错误上,在谷歌上搜索了几天,尝试了各种建议,但没有找到任何解决方案。
链接:http://kindwood.wwwsg1-ss15.a2hosted.com/ 我的index.ejs、nav.ejs、head.ejs和app.js代码:
<!DOCTYPE html>
<html lang="en">
<%- include('./partials/head') %>
<body>
<%- include('./partials/nav') %>
<div class="container">
<h2 class='heading'>Blogs</h2>
<% blogs.forEach(blog=>{ %>
<h3 class='title'><a href="/blogs/<%= blog._id %>"><%= blog.title %></a></h3>
<p><%= blog.text %></p>
<% }) %>
<%- include('./partials/footer') %>
</div>
</body>
</html>
<nav>
<h1>blogs</h1>
<ul class="main-menu">
<li><a href="/blogs">home</a></li>
<li><a href="/about">about</a></li>
<li><a href="/blogs/create">create</a></li>
</ul>
</nav>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Blogs | <%= title %></title>
<link rel="stylesheet" href="/styles.css">
const express=require('express')
const app=express()
const mongoose=require('mongoose')
const Blog=require('./models/blog')
mongoose.connect('mongodb+srv://dave:test1234@cluster0.z2g3z.mongodb.net/nodetuts?retryWrites=true&w=majority',{useNewUrlParser: true, useUnifiedTopology: true})
app.set('view engine','ejs')
app.use(express.static('public'))
app.use(express.urlencoded({extended: true}))
app.get('/',(req,res)=>{
Blog.find({})
.then(blogs=>{
// console.log(blogs)
res.render('index',{blogs,title:'Homepage'})
})
.catch(err=>console.log(err))
})
app.get('/blogs',(req,res)=>{
res.redirect('/')
})
app.post('/blogs',(req,res)=>{
const blog=new Blog(req.body)
blog.save()
.then(blog=>{
res.redirect('/blogs')
})
.catch(err=>console.log(err))
})
app.get('/blogs/create',(req,res)=>{
res.render('create',{title:'Create'})
})
app.get('/blogs/:id',(req,res)=>{
Blog.findById(req.params.id)
.then(blog=>{
res.render('details',{blog,title:'Details'})
})
.catch(err=>console.log(err))
})
app.delete('/blogs/:id',(req,res)=>{
Blog.findByIdAndDelete(req.params.id)
.then(result=>{
res.json({redirect:'/blogs'})
})
.catch(err=>console.log(err))
})
app.get('/about',(req,res)=>{
res.render('about',{title:'About'})
})
app.use((req,res)=>{
res.render('404',{title:'404'})
})
app.listen(()=>console.log('server is listening'))
暂无答案!
目前还没有任何答案,快来回答吧!