4

私は最近、express.js を使用して簡単な 1 ページのアプリを作成しました。これは本当に初めての 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'));
});

ルートにはまったく変更を加えていないため、デフォルトのままです。

4

2 に答える 2

12

設定を使用してくださいexpress.static:

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

そしてfonts、そのpublicフォルダーにフォルダーを配置します。

于 2013-07-03T13:37:09.903 に答える
3

Heroku を使用している場合は、次のスレッドを参照してください: Heroku に Nodejs をデプロイすると、サブフォルダーにある静的ファイルの提供に失敗する

その男は、package.json で NPM の最後のバージョンを指定するまで、"__dirname" に苦労したと説明しています。

"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」の代わりに

ただし、すでにローカルに苦労している場合は、おそらく役に立たない.

于 2013-07-03T14:38:50.973 に答える