Las imágenes que se encuentran en la carpeta App_Data no se muestran en el navegador

StackOverflow https://stackoverflow.com/questions/1519790

  •  19-09-2019
  •  | 
  •  

Pregunta

Cuando me puse la propiedad URL de la imagen a Asp control de la imagen que se encuentra en la carpeta App_Data, la imagen se muestra en la página de vista de diseño, pero no en el navegador.

<form id="form1" runat="server">
<div>
    <asp:Image ID="Image1" runat="server" ImageUrl="~/App_Data/p3.jpg" />
</div>
</form>

Parece ser sencillo, pero no se muestra la imagen.

¿Fue útil?

Solución

La carpeta App_Data es una carpeta especial reservado para datos como archivos de base y así sucesivamente, y no render a cabo cualquier contenido en la web. Esto es por diseño, e intencional y no se puede cambiar (por lo que yo sé).

Sus imágenes no definitivamente no pertenecen a la subcarpeta App_Data - los puso en una carpeta /images o algo más apropiado

.

Otros consejos

Las imágenes nunca se deben almacenar en la carpeta App_Data. Esto se reserva para los archivos que no deberían ser servidas directamente al usuario, tales como .mdb archivos de base, etc.

Me gustaría crear una carpeta o /Resources /Resources/Images fuera de la raíz del sitio.

No estoy de acuerdo. Al ocultar las imágenes en la carpeta App_Data y la creación de su propio http-manejador a proteger sus imágenes y los derechos de autor puede añadir texto, etc. en las imágenes antes de que se les muestra.

Puedo hacer esto cuando tengo en alta resolución Fotografías i wan't no todo el mundo para llegar, y teniendo el manejador http-descendente de la escala de la imagen y puse algo de copyrighttext. Genial!

Bueno, es hora de hacer lo imposible ... Aunque no se puede cargar imágenes directamente desde la carpeta App_Data, puede escribir su propio controlador HTTP que leerá el archivo de imagen de la carpeta App_Data y enviarla de vuelta al cliente. Sería una solución temporal, pero en general, los datos se entiende por datos que sólo su aplicación puede leer. Al tener un controlador de lectura de los datos, todavía se puede devolver esas imágenes.

Pero es una mala práctica y si estaría trabajando para mí, serías despedido de inmediato !!!

Depende! ;)

Hay buenas razones para guardar imágenes en App_Data. En situaciones donde los usuarios pueden subir sus archivos o logotipos que protegerá a estos archivos y no hacerlos accesibles a otros usuarios o siendo pública.

Lo más importante, es la única manera de tener diferentes archivos por servidor de instancias / despliegue.

Al desplegar su aplicación puede proteger estos archivos subidos por los usuarios por ejemplo servidor habilitando "excluir archivos de App_Data" en su configuración de implementación.

Si desea acceder a estos archivos mediante la url usar un controlador de descarga, downloadfile.ashx por ejemplo.

Espero que esto ayude.

Contenido de la carpeta App_Data se pueden servir pero no directamente.
Acceso directo no es posible e indirecta, no se recomienda. Es intencional.

Sin embargo, la adición de un camino virtual puede hacer esto. Ver este


Creo que los tres primeros respuesta sirve a su propósito.
almacenar imágenes en la carpeta de recursos, ya sea global o local estos también son carpetas y contenidos especiales se puede acceder programaticaly.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top