Я настроил несколько маршрутов для REST API, используя Grapevine, для небольшого веб-сервера в настольном приложении.API работает нормально, и другие статические файлы работают нормально, но я не могу заставить маршрутизатор направить пустой URL: http://:port/ в корневой файл index.html в указанной папке.
Веб - этопапка в пути exe, содержащая index.html и test.html.
Я могу обслуживать http://xxx:8080/test.html просто отлично.http://xxx:8080/ дает «Маршрут не найден для GET /»
Настройка веб-сервера:
ServerSettings settings = new ServerSettings()
{
Host = "*",
Port = "8080",
PublicFolder = new PublicFolder("Web")
};
server = new RestServer(settings);
server.Start();
Маршруты:
[RestResource]
public class WebRequestHandler
{
[RestRoute(HttpMethod = HttpMethod.GET, PathInfo = "/api/v1/live")]
public IHttpContext Live(IHttpContext context)
{
snip
return context;
}
[RestRoute(HttpMethod = HttpMethod.GET, PathInfo = "/api/v1/cmd1/[id]")]
public IHttpContext Cmd1(IHttpContext context)
{
return context;
}
[RestRoute(HttpMethod = HttpMethod.GET, PathInfo = "/api/v1/cmd2/[id]")]
public IHttpContext Cmd2(IHttpContext context)
{
snip
return context;
}
[RestRoute(HttpMethod = HttpMethod.GET, PathInfo = "/api/v1/cmd3/[id]")]
public IHttpContext Cmd3(IHttpContext context)
{
snip
return context;
}
}
index.html должен обслуживатьсякогда запрашивается корневой URL.