2016-10-02 11 views
1

ノード/エクスプレス/角度でアプリケーションを構築しました。エクスプレスとマルチターを使用してアップロードフォルダ内の画像にアクセスできません

「クライアント」フォルダにすべての角フロントエンドコードがあり、バックエンド(nodejs & express)が別のフォルダ(「サーバー」)にあります。

私はGruntを使ってコードを "server/dist"フォルダにコンパイルするので、プロダクションに公開するときは "server"フォルダをアップロードしています。

画像をアップロードする機能が追加されました。これを行うにはmulterを使用しています。

私は "server"ディレクトリに "fileuploads"フォルダを作成し、そのフォルダにファイルを正常にアップロードしています。

問題:私のアプリで

私は画像を参照する必要があるが、私は自分のサーバー/ app.jsファイル内の静的参照を作成したにも関わらず、私はまだそれらを達することができないんです。ここで

は私のサーバー側app.jsファイルは次のようになります。

クライアント側で
var express = require('express'); 
var path = require('path'); 
var favicon = require('serve-favicon'); 
var logger = require('morgan'); 
var cookieParser = require('cookie-parser'); 
var bodyParser = require('body-parser'); 
var mongoose = require('mongoose'); 
var cors = require('cors'); 
var multer = require('multer'); 

mongoose.connect('mongodb://localhost/OM'); 

var app = express(); 

// uncomment after placing your favicon in /public 
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); 
app.use(logger('dev')); 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: true })); 
app.use(cookieParser()); 
app.use(cors());  

app.use('/api', require('./routes/api')); 
app.use('/sendmail', require('./routes/sendmail')); 
app.use('/uploads', require('./routes/uploads')); 
app.use(express.static(path.join(__dirname, '../client/app/custom'))); 
app.use(express.static(path.join(__dirname, '/dist'))); 
app.use(express.static(path.join(__dirname, '/fileuploads'))); 



// production error handler 
// no stacktraces leaked to user 
app.use(function(err, req, res, next) { 
    res.status(err.status || 500); 
    res.render('error', { 
     message: err.message, 
     error: {} 
    }); 
}); 

app.all('/*', function(req, res){ 
    res.sendFile(path.join(__dirname, '/dist/index.html')); 
}); 

module.exports = app; 

、私は次のようにファイルにアクセスしようとしました:

<img src="fileuploads/0d904f4a422ea5a8fcd9a3859b58cdb9" /> 

<img src="/fileuploads/0d904f4a422ea5a8fcd9a3859b58cdb9" /> 

<img src="../fileuploads/0d904f4a422ea5a8fcd9a3859b58cdb9" /> 

しかし、何も動作するようです。

私には何が欠けていますか?

答えて

2

app.use(express.static(path.join(__dirname, '/fileuploads'))); 

として

app.use('/fileuploads', express.static(path.join(__dirname, '/fileuploads'))); 

を持っているか、それが短いをこのようにするために素敵になります。

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

こうすることで、あなたはどこにでもアクセスすることができますがあなたのアプリでは: <img src="/fileuploads/0d904f4a422ea5a8fcd9a3859b58cdb9" />これは基本的に "どこでも私はfileupl私は正しい道に仕えてください。 "^_^

関連する問題