Domanda

Quando ho creato immagine proprietà URL a ASP controllo delle immagini che si trova nella cartella App_Data, immagine sta mostrando nella pagina di visualizzazione di progettazione, ma non nel browser.

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

Sembra essere semplice, ma non è che mostra l'immagine.

È stato utile?

Soluzione

La cartella App_Data è una cartella speciale riservata ai dati come file di database e così via, e non il rendering di qualsiasi contenuto sul web. Ciò è di progettazione, e intenzionale e non può essere modificato (per quanto ne so).

Le immagini non sicuramente non appartengono nella sottocartella App_Data - metterli in una cartella /images o qualcosa di più appropriato

.

Altri suggerimenti

Le immagini devono mai essere memorizzati nella cartella App_Data. Questo è riservato per i file che non dovrebbe mai essere serviti per l'utente direttamente, come ad esempio i file di database mdb, ecc.

Vorrei creare una cartella /Resources o /Resources/Images la radice del sito.

Non sono d'accordo. Quando si nasconde le immagini nella cartella App_Data e creare il proprio http-handler di proteggere le vostre immagini e può aggiungere copyright-testo, ecc sulle immagini prima di mostrare.

I fare questo quando ho highres immagini non mi wan't a tutti di ottenere, e avendo il http-handler downscale l'immagine e mettere su qualche copyrighttext. Grande!

Va bene, il tempo di fare l'impossibile ... Anche se non è possibile caricare le immagini direttamente dalla cartella App_Data, è possibile scrivere il proprio gestore HTTP, che leggerà il file di immagine dalla cartella App_Data e inviarlo al client. Sarebbe un work-around, ma, in generale, i dati è pensato per i dati che solo l'applicazione in grado di leggere. Avendo un gestore lettura dei dati, si può ancora tornare quelle immagini.

Ma è cattiva pratica e se si desidera lavorare per me, devi essere licenziato immediatamente !!!

Dipende! ;)

Ci sono buone ragioni per salvare le immagini in App_Data. In situazioni in cui gli utenti possono caricare i propri file o loghi Proteggerà questi file e non renderli accessibili ad altri utenti o di essere pubblico.

La maggior parte importante, è l'unico modo per avere diversi file per server / istanza distribuzione.

Quando si distribuisce la vostra applicazione è possibile proteggere i file caricati dagli utenti per ogni istanza del server attivando "Escludi file da App_Data" nella configurazione della distribuzione.

Se si desidera accedere a questi file da url utilizzare un gestore di download, downloadfile.ashx per esempio.

Spero che questo aiuti.

Contents dalla cartella App_Data possono essere serviti ma non direttamente.
Accesso diretto non è possibile e indiretta non è raccomandato. E 'intenzionale.

tuttavia l'aggiunta di un percorso virtuale può fare questo. Vedere questo


Penso che i primi tre risposta serve il vostro scopo.
memorizzano le immagini nella cartella delle risorse sia globali o locali queste sono anche le cartelle speciali e contenuti sono accessibili programaticaly.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top