Files
VNCServerList/Web/Startup.cs
backuppc 8efe357430 ..
2025-07-08 11:16:43 +09:00

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();
});
}
}
}