2017-10-05 10 views
2

J'ai une application principale asp .net fonctionnant sous Linux avec Kestrel.Comment héberger une application principale asp .net dans un sous-dossier

Il se lie à l'IP ok sur le port 80.

Mais le site proxy inverse nginx doit héberger l'application sous un chemin non-racine par exemple

http://somesite.com/myapp

donc c'est ok, les charges d'applications, mais l'application ne sait pas sur le chemin monappli - donc tente de charger des ressources de chemin contenu de la racine. Par conséquent, les ressources CSS ne sont pas chargées.

Comment est-ce que je configure idéalement l'application à l'exécution pour connaître le chemin d'URL.

Mise à jour:

J'ai trouvé que dans Startup.configure en utilisant app.UsePathBase ("/ myapp"); aide que l'application va gérer la demande sur ce chemin OK - mais les demandes de fichiers statiques sont alors /myapp/images/example.jpg qui renvoient un 404.

Le dossier images est dans wwwroot - le défaut que je comprends pour UseStaticFiles.

Je m'attendais à la demande de comprendre que/myapp était en effet virtuel.

Répondre

1

scottc,

Une fois que votre contenu web est en wwwroot vous devez ajouter app.UseStaticFiles() dans la section de configuration de la classe de démarrage.

Voir l'exemple ci-dessous:

public void Configure(IApplicationBuilder app, IHostingEnvironment env) 
{ 
    app.UseStaticFiles(); 
} 

En espérant vous avoir aidé.

+0

Merci, mais au démarrage sur configurer j'utilise app.UseStaticFiles – ScottC

1

OK - donc 2 choses a dû être fait pour obtenir l'application en cours d'exécution sous un « répertoire virtuel »:

Dans la méthode de configuration de démarrage que je devais définir le chemin de base pour l'application et spécifier un chemin pour la statique des dossiers. L'application fonctionne également à partir de/aussi - je ne sais pas si c'est souhaitable, mais ce n'est pas un gros problème pour moi en ce moment.

+0

cela a fonctionné pour moi, le site était accessible à la fois/et/myapp – Ron