gpt4 book ai didi

asp.net - 修改静态文件内容

转载 作者:行者123 更新时间:2023-12-03 22:47:58 25 4
gpt4 key购买 nike

当我使用 Microsoft.Owin.StaticFiles 时,如何在将响应发送到客户端之前修改响应?

        FileServerOptions options = new FileServerOptions();
options.FileSystem = new Microsoft.Owin.FileSystems.PhysicalFileSystem(Path.Combine(Environment.CurrentDirectory, "Content/"));
options.DefaultFilesOptions.DefaultFileNames = new string[] { "index.htm", "index.html" };
options.StaticFileOptions.OnPrepareResponse = (r) =>
{
r.OwinContext.Response.WriteAsync("test");
};
options.EnableDefaultFiles = true;
app.UseFileServer(options);

“测试”永远不会写入响应。我尝试使用另一个中间件,直到执行 StaticFiles 中间件:
        app.Use((ctx, next) =>
{
return next().ContinueWith(task =>
{
return ctx.Response.WriteAsync("Hello World!");
});
});

FileServerOptions options = new FileServerOptions();
options.FileSystem = new Microsoft.Owin.FileSystems.PhysicalFileSystem(Path.Combine(Environment.CurrentDirectory, "Content/"));
options.DefaultFilesOptions.DefaultFileNames = new string[] { "index.htm", "index.html" };
options.EnableDefaultFiles = true;
app.UseFileServer(options);

但这没有用。如何修改响应?

最佳答案

准备响应并不意味着修改静态文件的内容。
您只能添加标题。

我需要将一些更改为静态网页的变量传递给我,我通过使用
在准备响应并将变量作为页面的 cookie 传递。
这适用于一些变量,但如果您想显着更改页面,最好使用 mvc 组件。

         appBuilder.UseStaticFiles(new StaticFileOptions()
{
RequestPath = new PathString(baseUrl),
FileSystem = new PhysicalFileSystem(staticFilesLocation),
ContentTypeProvider = new JsonContentTypeProvider(),
OnPrepareResponse = r => r.OwinContext.Response.Cookies.Append("baseUrl",_webhostUrl)
});

关于asp.net - 修改静态文件内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24557434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com