Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 即使配置了Express.static,Express.js也无法访问静态文件_Node.js_Express - Fatal编程技术网

Node.js 即使配置了Express.static,Express.js也无法访问静态文件

Node.js 即使配置了Express.static,Express.js也无法访问静态文件,node.js,express,Node.js,Express,我尝试了localhost:3000/index.html(在这里我放了一个静态页面),localhost:3000/javascripts/dio.js(在这里我放了js) localhost:3000/images/dio1.jpg(我把图像放在这里), 无法访问所有文件。为什么?怎么了 My app.js定义: var express = require('express') var app=express() app.bcrypt = require('bcrypt') app.im=r

我尝试了localhost:3000/index.html(在这里我放了一个静态页面),localhost:3000/javascripts/dio.js(在这里我放了js) localhost:3000/images/dio1.jpg(我把图像放在这里), 无法访问所有文件。为什么?怎么了

My app.js定义:

var express = require('express')
var app=express()
app.bcrypt = require('bcrypt')
app.im=require('imagemagick')
app.fs=require('fs')
app.application_root = __dirname
app.path = require("path")
app.mongoose = require("mongoose")

var config=require('./config.js')(app,express)

var models = require('./models/models.js')(app.mongoose)
models.UserModel = models.UserModel
models.CommentModel = models.CommentModel
models.ItemModel = models.ItemModel

require('./routes')(app, models)

app.listen(3000);
console.log("Listening on port 3000")
module.exports = function(app, express, mongoose){
    var config=this

    app.configure(function (){
        app.set('views',__dirname+'/views')
        app.set('view engine','jade')
        app.set('view engine', {layout:true})

        app.use(express.bodyParser())
        app.use(express.methodOverride())
        app.use(express.cookieParser())
        app.use(express.session({secret: 'topsecret',store: new express.session.MemoryStore}))
        app.use(app.router)
        app.use(express.static(app.path.join(app.application_root+"public")))
        app.use(express.errorHandler({dumpExceptions:true,showStack:true}))
        app.use(express.bodyParser({keepExtensions: true, uploadDir:"./public/uploads"}))
    })

    /*DB part:*/
    app.mongoose.connect('mongodb://localhost/dio_database')

    return config
}
以下是我的config.js定义:

var express = require('express')
var app=express()
app.bcrypt = require('bcrypt')
app.im=require('imagemagick')
app.fs=require('fs')
app.application_root = __dirname
app.path = require("path")
app.mongoose = require("mongoose")

var config=require('./config.js')(app,express)

var models = require('./models/models.js')(app.mongoose)
models.UserModel = models.UserModel
models.CommentModel = models.CommentModel
models.ItemModel = models.ItemModel

require('./routes')(app, models)

app.listen(3000);
console.log("Listening on port 3000")
module.exports = function(app, express, mongoose){
    var config=this

    app.configure(function (){
        app.set('views',__dirname+'/views')
        app.set('view engine','jade')
        app.set('view engine', {layout:true})

        app.use(express.bodyParser())
        app.use(express.methodOverride())
        app.use(express.cookieParser())
        app.use(express.session({secret: 'topsecret',store: new express.session.MemoryStore}))
        app.use(app.router)
        app.use(express.static(app.path.join(app.application_root+"public")))
        app.use(express.errorHandler({dumpExceptions:true,showStack:true}))
        app.use(express.bodyParser({keepExtensions: true, uploadDir:"./public/uploads"}))
    })

    /*DB part:*/
    app.mongoose.connect('mongodb://localhost/dio_database')

    return config
}
而不是连接和连接:

每个部分都应作为单独的参数传递给:

或者,如果您希望连接,则不会为
应用程序\u root
添加尾部斜杠,因此您需要添加一个:

 app.application_root + '/public'
试试这种风格:

app.use('/public', express.static(__dirname + "/public"));