Existe-t-il un moyen d'afficher des images avec ASP.NET et app_offline.htm ?

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

  •  09-06-2019
  •  | 
  •  

Question

Lorsque vous utilisez la fonctionnalité app_offline.htm d'ASP.NET, elle autorise uniquement le HTML, mais pas les images.Existe-t-il un moyen d'afficher les images sans avoir à les diriger vers une URL différente sur un autre site?

Était-ce utile?

La solution

Oui, cela ne peut tout simplement pas provenir du site contenant le fichier app_offline.htm.L'image devrait être hébergée ailleurs.

Autres conseils

Une autre solution consiste à intégrer l'image dans la page app_offline.htm à l'aide d'un URI de données.Il existe un large soutien à ce sujet ces jours-ci - voir ce qui suit pour plus de détails -http://en.wikipedia.org/wiki/Data_URI_scheme

Si vous êtes prêt à faire un peu plus de travail, vous pouvez facilement créer une page personnalisée pour mettre l'application hors ligne.

Une solution possible :

  • Créez DisplayOfflineMessage.aspx :Contient une étiquette pour afficher votre message hors ligne depuis l'application ["OfflineMessage"].
  • ManageOfflineStatus.aspx :Contient une case à cocher hors ligne/en ligne, une zone de texte pour le message hors ligne et un bouton de mise à jour.Le bouton de mise à jour définit deux variables au niveau de l'application, une pour le message et un indicateur indiquant si l'application est en ligne.(Cette page ne doit être accessible qu'aux administrateurs)

Puis dans Global.asax

 public void Application_Start(object sender, EventArgs e)
 {
     Application["OfflineMessage"] = "This website is offline.";
     Application["IsOffline"] = false;
 }



 public void Application_OnBeginRequest(object sender, EventArgs e)
 {
     bool offline = Convert.ToBoolean(Application["IsOffline"]);

     if (offline) 
     {

         // TODO: allow access to DisplayOfflineMessage.aspx and ManageOfflineStatus.aspx

         // redirct requests to all other pages
         Response.Redirect("~/DisplayOfflineMessage.aspx");
     }
 }

Si vous ne prenez pas en charge les navigateurs antérieurs à IE 8, vous pouvez toujours intégrer les images à l'aide d'un URI de données.

http://css-tricks.com/data-uris/

J'ai une idée.

Vous pouvez créer une application distincte, pointée vers le même dossier, sans qu'ASP.NET soit activé.L’accès aux images par cette application ne sera alors pas affecté par le fichier app_offline.htm.Ou, pointez cette application directement vers un dossier avec un contenu statique, il n'y aura aucun fichier app_offline.

Mais, bien sûr, vous devez attribuer un nom DNS distinct pour cette application, du type static.somedomain.com.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top