Quindi sto giocando con Owin e Katana e voglio pubblicare file statici nella mia cartella pubblica.Owin serve solo file in alcune cartelle
Ho una cartella Contenuto con fogli di stile e una cartella di script.
mio Startup:
public void Configuration(IAppBuilder app)
{
#if DEBUG
//when things go south
app.UseErrorPage();
#endif
// Remap '/' to '.\public\'.
// Turns on static files and public files.
app.UseFileServer(new FileServerOptions()
{
RequestPath = PathString.Empty,
FileSystem = new PhysicalFileSystem(@".\public"),
});
}
Quindi, se se navigo a localhost: 8861/I go il file index.html nella mia cartella pubblica. Va bene. Ma posso anche navigare sul mio localhost: 8861/Content/style.css che voglio bloccare. Tutto ciò di cui l'utente ha bisogno dovrebbe essere accessibile nella cartella pubblica. Tutto il resto dovrebbe essere bloccato.
Come posso ottenere questo risultato?
Grazie a ciò risolve il problema. Tuttavia sembra esserci un problema nel servire gli altri file nella mia cartella pubblica. Quindi public contiene un index.html, style.css e script.js. L'indice viene pubblicato ma style.css e script.js danno un 404.4. Qualche idea? – user1613512
Strano, tutto funziona perfettamente sul mio PC, ma ho provato con l'app ospitata in proprio. Sei sicuro di accedere a questi file con i seguenti URL yoursite/style.css e non yoursite/public/style.css? Questi file esistono nella cartella del sito Web, giusto? – ntl
Un'altra cosa che puoi provare. Registra il prossimo middleware come l'ultimo nella configurazione di te: app.Run (context => {return context.Response.WriteAsync ("Wildcard OWIN App");}); posiziona il punto di interruzione all'interno del delegato e prova ad accedere a style.css dal browser. Questo gestore è un middleware jolly che gestisce tutte le richieste che non sono state gestite da altri middleware. Se la tua app verrà arrestata con il punto di interruzione, OWIN gestisce la richiesta ma la configurazione non è corretta, altrimenti qualcosa non funziona con la configurazione di IIS. – ntl