Javascript Can';t使用mongoose和node服务静态文件

Javascript Can';t使用mongoose和node服务静态文件,javascript,node.js,mongodb,express,mongoose,Javascript,Node.js,Mongodb,Express,Mongoose,关于StackOverflow的第一个问题。在我的一个路由上提供公共目录时遇到问题,它在除/player/:id/intro路由之外的所有其他路由上都有效。以下是我的app.js: var express=require('express'), app=express(), mongoose=require('mongoose'), Player=require('./models/player'), bodyParser=require('body-parser

关于StackOverflow的第一个问题。在我的一个路由上提供公共目录时遇到问题,它在除/player/:id/intro路由之外的所有其他路由上都有效。以下是我的app.js:

var express=require('express'),
    app=express(),
    mongoose=require('mongoose'),
    Player=require('./models/player'),
    bodyParser=require('body-parser')

var indexRoutes=require('./Routes/index')
var conversationRoutes=require('./Routes/Conversations/index')

app.set('view engine', 'ejs')
app.use(express.static('public'))
app.use(bodyParser.urlencoded({extended: true}))
mongoose.connect('mongodb+srv://MichaelPatriot21:Werewolf18@cluster0-9umcn.gcp.mongodb.net/Ambassador?retryWrites=true&w=majority', {useNewUrlParser: true, useUnifiedTopology: true})

app.use(indexRoutes)
app.use(conversationRoutes)

app.listen(3000, function(){
    console.log('Server listening at PORT: 3000...')
})
下面是我的index.js,它的路径有问题:

var express = require('express'),
    router = express(),
    Player = require('../../models/player')

router.get('/player', function(req,res){
    Player.find({}, function(err, players){
        if(err) {
            console.log(err)
        } else {
            res.render('playerlist', {
                pageTitle: 'Characters',
                player: players
            })
        }
    })
})

router.get('/player/:id/intro', function (req, res) {
    Player.findById(req.params.id, function (err, player) {
        if (err) {
            console.log(err)
        } else {
            res.render('conversations/introduction', {
                pageTitle: 'Intro',
                player: player
            })
            console.log(player)
        }
    })
})

module.exports = router
我的文件结构是:
v3/
models/player.js
节点_模块/
public/choices-intro.css
public/choices-intro.js
路由/对话/index.js
Routes/index.js
视图/对话/简介.ejs
视图/索引/home.ejs
视图/部分/footer.ejs
视图/部分/header.ejs
视图/playerlist.ejs
app.js
package-lock.json

package.json

这是您尝试使用多个路径段的唯一uri吗?您是否将您的资产引用为简单的
choices intro.js
?href是相对于页面的uri的,并且应该以斜杠作为前缀(例如,
/choices intro.js
)才能从您域中的任何uri工作。我不敢相信它这么简单,谢谢。这是您尝试使用多路径段的唯一uri吗?您是否将您的资产引用为简单的
choices intro.js
?href是相对于页面的uri的,应该以斜杠作为前缀(例如,
/choices intro.js
)才能从您域中的任何uri工作。我不敢相信它会这么简单,谢谢。