node.js应用程序:home“/”路由有效,但其他路由(以及styles.css)无效

f5emj3cl  于 2021-09-23  发布在  Java
关注(0)|答案(0)|浏览(172)

我正在学习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'))

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题