javascript meteor upload public

javascript - No se pueden ver nuevos archivos en el directorio público de meteoros



upload public (2)

Es bueno ver a la gente tratando de meteorito. Es genial, pero al mismo tiempo, parece complicado. Lo que realmente me ayudó mucho es usar esta aplicación: metoer-kitchen . Ahora lo uso junto a cuando trabajo en mis proyectos.

Cuando se compila una aplicación de meteorito ( meteor build app ), el directorio público se becomes /programs/web.browser/app Todos los archivos que se encontraban en el directorio público de desarrollo /public están ahora accesibles con http://domain.tld/file-in-public-directory.jpg

Cuando coloco un nuevo archivo en el directorio público compilado y trato de verlo en el navegador, aparece un error que dice que Meteor no tiene una ruta para esa url. Cuando hago esto en el directorio público de desarrollo, funciona sin errores, pero no en la compilación ( meteor build app ).

Necesito esto, porque quiero subir nuevos archivos en ese directorio.

¿Alguna ayuda?


Por lo tanto, tendrá que ajustarlo un poco, pero hay una manera de acceder prácticamente a cualquier carpeta que desee, especialmente para archivos estáticos, utilizando el objeto connectHandlers bajo nivel.

Aquí hay un ejemplo donde tienes una carpeta llamada .images (oculta de la actualización automática de Meteor), que sirve imágenes cada vez que se realiza una solicitud a http: // [yoursiteURL] / images / ...

var fs = Npm.require(''fs''); WebApp.connectHandlers.use(function(req, res, next) { var re = /^//images//(.*)$/.exec(req.url); if (re !== null) { var filePath = process.env.PWD + ''/.images/'' + re[1]; var data = fs.readFileSync(filePath, data); res.writeHead(200, { ''Content-Type'': ''image'' }); res.write(data); res.end(); } else { next(); } });

Está utilizando una expresión regular para averiguar si la solicitud entrante está intentando acceder / images /. Si es así, vamos a enviar la imagen con los encabezados apropiados, usando res.write()

Dos cosas de importancia:

1- No tiene que usar nada especial (sin paquetes, etc.) para usar Npm.require(''fs'') porque está integrado y es utilizable.

2- usar fs.readFileSync es un poco fs.readFileSync y está bloqueando. Querrá ajustar eso para una aplicación de producción de rendimiento.

¡Espero que esto ayude! Se puede encontrar un poco más de información sobre connectHandlers aquí .