Frage

Wenn ich die Bild -URL -Eigenschaft auf ASP -Bildsteuerung festlegt, die sich im Ordner app_data befindet, wird das Bild in der Seitenansicht angezeigt, jedoch nicht im Browser.

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

Es scheint unkompliziert zu sein, aber es zeigt das Bild nicht.

War es hilfreich?

Lösung

Das App_Data Ordner ist ein spezieller Ordner, der für Daten wie Datenbankdateien usw. reserviert ist und wird und wird NICHT Rendern Sie alle Inhalte im Web. Dies geschieht nach Design und beabsichtigt und kann nicht geändert werden (soweit ich weiß).

Ihre Bilder gehören definitiv nicht zur App_Data Unterordner - stecken Sie sie in a /images Ordner oder etwas angemesseneres.

Andere Tipps

Bilder sollten niemals in der gespeichert werden App_Data Mappe. Dies ist für Dateien reserviert, die dem Benutzer niemals direkt zugestellt werden sollten, z. B. .MDB -Datenbankdateien usw.

Ich würde eine erstellen /Resources oder /Resources/Images Ordner von der Wurzel der Site.

Ich stimme dir nicht zu. Wenn Sie Bilder im Ordner app_data verstecken und Ihr eigenes HTTP-Handler erstellen, sichern Sie Ihre Bilder und können die Bilder auf die Bilder hinzufügen, bevor Sie sie anzeigen.

Ich mache das, wenn ich Highres-Bilder habe, die ich nicht jeder bekommen kann, und das HTTP-Handler das Bild abnötigen und einen CopyrightText anziehen. Groß!

Okay, Zeit für das Unmögliche ... während Sie Bilder nicht direkt aus dem Ordner app_data laden können, können Sie Ihren eigenen HTTP -Handler schreiben, der die Bilddatei aus dem Ordner app_data liest und an den Client zurücksendet. Es wäre ein Arbeit, aber im Allgemeinen sind die Daten für Daten bestimmt, die nur Ihre Anwendung lesen kann. Wenn Sie die Daten lesen, können Sie diese Bilder weiterhin zurückgeben.

Aber es ist eine schlechte Übung und wenn Sie für mich arbeiten würden, würden Sie sofort gefeuert !!!

Es hängt davon ab, ob! ;))

Es gibt gute Gründe für das Speichern von Bildern in App_Data. In Situationen, in denen Ihre Benutzer ihre Dateien oder Logos hochladen können, schützt sie diese Dateien und machen sie nicht für andere Benutzer oder öffentlich zugänglich.

Am wichtigsten ist, dass es die einzige Möglichkeit ist, unterschiedliche Dateien pro Server-/Bereitstellungsinstanz zu haben.

Wenn Sie Ihre App bereitstellen, können Sie diese Dateien pro Serverinstanz von Benutzern schützen, indem Sie in Ihrer Bereitstellungskonfiguration "Dateien von app_data ausschließen" aktivieren.

Wenn Sie über URL auf diese Dateien zugreifen möchten, verwenden Sie beispielsweise einen Download -Handler downloadFile.ashx.

Hoffe das hilft.

Der Inhalt aus dem Ordner app_data kann serviert werden, aber nicht direkt.
Direkter Zugang ist nicht möglich und es wird nicht empfohlen. Es ist beabsichtigt.

Das Hinzufügen eines virtuellen Pfades kann dies jedoch tun. Sieh dir das an Frage


Ich denke, die Top -drei Antwort dient Ihrem Zweck.
Speichern Sie Bilder im Ressourcenordner entweder global oder lokal. Dies sind auch spezielle Ordner und Inhalte können auf programmatische Zugriffe zugegriffen werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top