簡體   English   中英

獲取express.js以顯示公用文件夾

[英]Getting express.js to show a public folder

我最近使用express.js構建了一個快速的單頁應用程序,這實際上是我的第一個js框架(實際上,我的第一個js項目,所以我真的很新)。 我已經訂閱了新的typography.com雲字體,而且我無法找到我放在公共文件夾中的“fonts”文件夾。 有沒有辦法我需要添加文件夾並指定路線?

這是我的app.js文件:

/**
 * Module dependencies.
 */

var express = require('express'),
    routes = require('./routes'),
    user = require('./routes/user'),
    http = require('http'),
    path = require('path');

var app = express();

// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static('public'));

// development only
if ('development' == app.get('env')) {
  app.use(express.errorHandler());
}

app.get('/', routes.index);
app.get('/users', user.list);

http.createServer(app).listen(app.get('port'), function(){
  console.log('Express server listening on port ' + app.get('port'));
});

我根本沒有對路線做任何改變,所以它們只是默認的。

請使用express.static設置:

app.use(express.static(process.cwd() + '/public'));

並把你fonts文件夾中public文件夾中。

如果您正在使用Heroku,您可能需要查看此線程: 在Heroku上部署Nodejs無法提供位於子文件夾中的靜態文件

這家伙解釋說他在“__dirname”中掙扎,直到他在他的package.json中指定了NPM的最后一個版本:

"engines": {
    "node": "0.10.11",
    "npm": "1.2.25"
} 

如果這不起作用,您可以嘗試:

// At the top of your web.js
process.env.PWD = process.cwd()

// Then
app.use(express.static(process.env.PWD + '/public'));

而不是“__dirname”

但是,如果你已經在與localy斗爭,那么所有這些都可能毫無用處。

暫無
暫無

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

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