2013-11-05 13 views
5

Quindi, abbiamo creato un uploader di file nella nostra applicazione che sta lavorando sull'ambiente locale. Abbiamo i file che vengono caricati pubblico/upload e siamo in grado di leggere i file utilizzando:Cartella di upload di Meteor.js su Produzione

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

Ora, quando ci spostiamo il codice per la produzione, usiamo un controllo:

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"); 
    } 
} 

Ora, questo salva il file in {prod_path}/programmi/client/app/upload. Tuttavia, non posso usare il file nell'applicazione. Ciò che sorprende è che tutti i file presenti in locale sembrano essere presenti anche nella stessa cartella di caricamento e sono accessibili dall'applicazione. Cosa mi manca?

+0

ho capito che il program.json ha il mapping per il percorso e l'url. Quindi, la prossima domanda è dove posso immagazzinare le mie risorse statiche sul server affinché sia ​​accessibile? –

risposta

0

Se questa applicazione viene eseguita su server con Nginx o Apache, è possibile impostare/caricare la posizione, in modo che i file vengano serviti direttamente senza Meteor.

Su Nginx Io uso qualcosa di simile:

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