La aplicación Ruby que se ejecuta en Sinatra usando HAML, ¿no puede acceder a los archivos en el directorio de carga?

Tengo una aplicación Ruby que es Image Resizer. Utiliza la gema RMagick para hacer esto. La aplicación le pide al usuario que cargue un archivo, luego lo cambia de tamaño y guarda el archivo recién generado.

Parece que Sinatra, por defecto, coloca todos los archivos cargados en el directorio 'cargas', y el archivo recién generado también parece estar guardado allí. Supongo que este es el comportamiento predeterminado, no estoy seguro de cómo cambiarlo, pero no es un problema inmediato en este momento (aunque si sabe cómo hacerlo, también lo agradecería).

Ahora, en mi página 'success.haml' que se muestra después de que el archivo se genera correctamente, intento mostrar la imagen recién generada con una simple etiqueta img. La ruta al archivo se encuentra en @filepath, así que cuando lo hice:

%img(src=@filepath)

el HTML renderizado (cuando se inspecciona con Firebug) se muestra correctamente

<img src="uploads/filename.jpg">

y este archivo existe en mi estructura de carpetas. Sin embargo, la imagen aparece rota.

¿Alguna idea sobre cómo superar este problema?

Gracias por su atención.

preguntado el 04 de julio de 12 a las 09:07

¿A qué apunta tu directorio público? Es uploads ¿en eso? -

Entonces, según su pregunta, hice un directorio de 'cargas' dentro del público y luego puse la imagen allí, y se accedió con éxito. -

¿Debería publicarlo como respuesta entonces? :) -

Por favor, hágalo para que pueda aceptarlo y los futuros visitantes de esta página puedan beneficiarse :) -

1 Respuestas

URL relativas (uploads/filename.jpg) se llaman así porque son relativos a la raíz web. En Sinatra esta es la carpeta pública. De forma predeterminada, se encuentra en el directorio de su aplicación y se llama public. Pero puedes anular eso.

set :public_folder, 'my_root' # this will make my_root dir the web root.

Por lo tanto, para que sus cargas sean visibles en Internet, colóquelas en su carpeta pública.

Lee esto para más configuraciones y personalizaciones de Sinatra.

Respondido 04 Jul 12, 15:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.