53 lines
1.8 KiB
C#
53 lines
1.8 KiB
C#
using Microsoft.Owin;
|
|
using Microsoft.Owin.StaticFiles;
|
|
using Owin;
|
|
using System.Web.Http;
|
|
using VNCServerList.Web.Controllers;
|
|
|
|
namespace VNCServerList.Web
|
|
{
|
|
public class Startup
|
|
{
|
|
public void Configuration(IAppBuilder app)
|
|
{
|
|
// Web API 설정
|
|
var config = new HttpConfiguration();
|
|
|
|
// 라우팅 설정
|
|
config.MapHttpAttributeRoutes();
|
|
|
|
config.Routes.MapHttpRoute(
|
|
name: "DefaultApi",
|
|
routeTemplate: "api/{controller}/{action}/{id}",
|
|
defaults: new { id = RouteParameter.Optional }
|
|
);
|
|
|
|
// JSON 포맷터 설정
|
|
config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
|
|
|
|
app.UseWebApi(config);
|
|
|
|
// 정적 파일 서빙 설정
|
|
var options = new FileServerOptions
|
|
{
|
|
EnableDefaultFiles = true,
|
|
DefaultFilesOptions = { DefaultFileNames = { "index.html" } },
|
|
FileSystem = new Microsoft.Owin.FileSystems.PhysicalFileSystem("Web/wwwroot")
|
|
};
|
|
|
|
app.UseFileServer(options);
|
|
|
|
// 캐시 방지 미들웨어 추가
|
|
app.Use(async (context, next) =>
|
|
{
|
|
if (context.Request.Path.Value.EndsWith(".js") || context.Request.Path.Value.EndsWith(".css"))
|
|
{
|
|
context.Response.Headers["Cache-Control"] = "no-cache, no-store, must-revalidate";
|
|
context.Response.Headers["Pragma"] = "no-cache";
|
|
context.Response.Headers["Expires"] = "0";
|
|
}
|
|
await next();
|
|
});
|
|
}
|
|
}
|
|
} |