簡體   English   中英

即使在配置express.static之后,Express.js也無法訪問靜態文件

[英]Express.js cannot access static files even after configuring express.static

我試過localhost:3000 / index.html(我把靜態頁面放在哪里),localhost:3000 / javascripts / dio.js(我把js放在哪里)localhost:3000 / images / dio1.jpg(我把圖像放在哪里),一切都無法訪問。 為什么? 怎么了?

我的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")

這是我的config.js定義:

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
}

試試這種風格:

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

而不是連接加入:

 app.path.join(app.application_root+"public")

要么將每個部分作為單獨的參數傳遞給path.join

 app.path.join(app.application_root, "public")

或者,如果您更喜歡連接, __dirname將沒有application_root的尾部斜杠,因此您需要添加一個:

 app.application_root + '/public'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM