2013-11-05 83 views
5

因此,我們在我們的應用程序中構建了一個文件上傳器,用於處理本地環境。我們已經將文件上傳到公共/上傳,我們可以利用讀取文件:Meteor.js上傳文件夾

http://localhost:3000/upload/filename.extension 

現在,當我們移動代碼到生產,我們使用一個檢查:

getUploadPath = function() { 
    var fs = Npm.require('fs'); 
    var path = Npm.require('path'); 
    var devPath = path.join(process.cwd(),"../../../../../public"); 
    var prodPath = path.join(process.cwd(),"../client/app/"); 
    if (fs.existsSync(devPath)) { 
     return path.join(devPath,"upload"); 
    } 
    else { 
     return path.join(prodPath,"upload"); 
    } 
} 

現在,這將文件保存到{prod_path}/programs/client/app/upload。但是,我無法在應用程序中使用該文件。令人驚訝的是,本地的所有文件似乎也出現在同一個上傳文件夾中,並且可以被應用程序訪問。我錯過了什麼?

+0

我想通了,該program.json具有路徑和URL映射。所以,下一個問題是我在哪裏存儲我的靜態資源在服務器上,以便它可以訪問? –

回答

0

如果此應用程序使用Nginx或Apache在服務器上運行,則可以設置/上傳位置,這樣文件將直接在沒有Meteor的情況下提供。

在Nginx的我用的是這樣的:

location /upload/ { 
    root /home/app-name/bundle/programs/web.browser/app; 
}