How to set default-statische web-Seite für Katana/Owin selbst gehosteten app?
Habe ich eine web-site über eine Owin selbst gehosteten console app. Ich bin statischen Dateien kein problem, die "Wurzel" der statische Teil der Webseite richtig funktioniert, und der web-API-Routen funktionieren auch.
Wenn ich navigieren Sie zu:
http://localhost/index.html
er stellt alles so ein wie ich erwarte. Aber ich habe nicht herausgefunden, wie man es so einstellen, dass der Browser:
http://localhost
präsentiert index.html (wie der Standard-Ansicht). Das Funktioniert unter einem IIS-Stil Website. Wie kann ich es machen das arbeiten mit Owin selbst hosten?
Können Sie uns zeigen, Ihr Startup.cs-Datei?
InformationsquelleAutor wilee | 2014-08-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich es so machen:
http://localhost:5000/index.html
und finden die Seite, wenn ich einfach gehen zuhttp://localhost:5000
bekomme ich nur ein 404.dies funktioniert mit den neuesten Versionen des NuGet-Pakete. Ich denke, Sie müssen nur fügen Sie den korrekten relativen Pfad index.html. Mir ist "app/templates/index.html" und das funktioniert, wenn ich eingeben, localhost:8080 in Chrome 🙂
paar, oben mit dafür, dass die html-Datei in das build-Verzeichnis, indem Sie Ihren "Copy to Output Directory" - Eigenschaft auf "Immer Kopieren" oder "Kopieren, wenn neuer". Es ist eine Schande, Sie nicht bekommen, eine exception, wenn die Datei nicht gefunden werden kann!!!
Ah relativen Pfad! Ich war einfach nur zu schreiben "index.html" dachte, es wäre, es zu finden. Cheers
Dies scheint nicht zu funktionieren wenn die Wurzel nicht direkt unter dem aktuellen Pfad. Wenn zum Beispiel root-Pfad ..\\web, das es nur gelingt, zu dienen dem Standard-Dokument, aber alle anderen Verweise (.js, .css etc) gibt 404 zurück, da er versucht, Sie zu lösen unter dem Pfad des Projekts, definiert der appBuilder... seltsames Verhalten...
InformationsquelleAutor fra
eine ausführlichere Fassung des fra ' s Antwort:
1 - NuGet installieren Sie Microsoft.Owin.StaticFiles (ich davon ausgegangen, dass Sie bereits installierten Microsoft.AspNet.WebApi.OwinSelfHost über NuGet)
2 - Erstellen Sie ein einzelnes Verzeichnis in der Lösung (in Visual Studio), und setzen Sie alle Ihre client-Dateien, z.B.
Hinweis: es gibt ein root-Verzeichnis (web), welches alle anderen Verzeichnisse und die index.html unter dem root direkt.
3 - Jetzt, in der gleichen Klasse, der Ihr web enthält api-routing-Konfiguration, fügen Sie den folgenden code:
4 - Ein weiterer Schritt für die prev-code zu arbeiten: stellen Sie sicher, dass die
Copy to output directory
- Eigenschaft aller Dateien im Web-Verzeichnis (und alle geschachtelten Verzeichnissen) eingestellt istCopy Always
[wählen Sie die Datei und drücken Sie die F4-Taste oder mit der rechten Maustaste, dann Eigenschaften|Copy to output directory
]Das ist alles 🙂
InformationsquelleAutor Sameh Deabes
Vielleicht ist es eine späte Antwort, aber wenn Sie benötigen nur eine Standard-Dokument, weniger code funktioniert:
Es sollte aufgerufen werden, bevor
builder.UseStaticFiles
aus welchem Grund auch immer.Version von
Microsoft.Owin.StaticFiles
ist 3.0.1UseDefaultFiles
vorUseStaticFiles
war der Schlüssel!InformationsquelleAutor the_joric
Vielleicht das Ende Antwort helfen konnte, alle anderen 🙂
Ich hatte gerade das gleiche problem mit einem SelfHost Owin app.
Die Lösung, die ich fand, ist die Implementierung einer Klasse aus IFileSystem interface kapselt eine PhysicalFileSystem Klasse (die auch implementiert von IFileSystem).
Und in der app:
InformationsquelleAutor SkwalieGator
In meinem Fall, mir fehlte die
Im system.webServer ein Teil meines web.config.
InformationsquelleAutor Cubelaster