使用后
app.UseStaticFiles(requestPath: "/static")
, 通过
生成的路径<link rel="stylesheet" href="~/css/global.css"/>
是
<link rel="stylesheet" href="/css/global.css"/>
而不是预期的
<link rel="stylesheet" href="/static/css/global.css"/>
如何将波浪号字符的路径生成逻辑更新为使用requestPath
?
答案 0 :(得分:0)
波浪号用于引用应用程序根目录。例如,如果您的应用程序被配置为具有不同的路径基础(使用UsePathBase()
),那么当您使用使用波浪号字符的动态路径时,该路径基础将考虑传入的请求。
但是,字符不是到达静态文件根目录的快捷方式。使用波浪号使用应用程序相对路径来到达非静态路径是完全有效的,例如,如果您有其他一些可以回答请求的中间件。
从概念上讲,由于多种原因,波浪号也无法自动选择静态文件的位置:
app.UseStaticFiles(requestPath: …)
时,该路径仅本地存储在静态文件中间件中。关于该根的信息无法到达外部。UseStaticFiles()
,您可以完全使用多个静态文件中间件。这样,将无法正确知道您所指的是静态文件根。通常,我建议您将静态文件中间件保留为默认值。这样,像favicon.ico
这样的静态文件就可以从根目录中受益,它们仍然可以正确提供。如果希望文件位于子路径中,请考虑只在wwwroot
内创建一个子文件夹。这样,在Razor视图中使用波浪号时,您还将获得适当的IntelliSense。