【发布时间】:2019-08-25 04:32:28
【问题描述】:
我正在使用 ASP.Net Core、typescript、react 和 webpack 构建一个 webapp。它被称为Ui.WebApp。 React 应用位于Ui.WebApp/ClientApp,webpack 构建输出到Ui.WebApp/ClientApp/dist。
在我的Startup.cs 中包含了
app.UseStaticFiles(new StaticFileOptions {
FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), "ClientApp/dist"))
}
);
这有效,即当我在我的_Layout.cshtml 中加载样式为<link rel="stylesheet" href="~/main.css" asp-append-version="true" type="text/css" />,它物理上驻留在Ui.WebApp/ClientApp/dist/main.css 中。它也适用于我包含为 <script src="~/main.js"></script> 的脚本。
现在我需要在 webpack 中构建脚本,并在其名称中使用哈希,即 main_968495a262da1789981f.js。 ASP.Net 中的模式是使用<script asp-src-include="~/main_*.js"></script>。但是,从浏览器查看页面时,没有生成脚本标记,因为我假设 ASP.Net 没有找到任何与该模式匹配的文件(但我可以在文件资源管理器中看到它)。
奇怪的是,当我手动将散列后的 js 文件放入 Ui.WebApp/wwwroot (我不会在其他情况下使用)时,脚本标签已正确填写。当我删除文件夹并刷新页面时,它们甚至会留在那里。
所以我假设 ASP.Net 在编译时验证标签助手,因此看不到我在 Startup.cs 中所做的配置。
有没有办法让 ASP.Net 在运行时验证标签助手并选择正确的位置?
【问题讨论】:
-
Nasto,你有想过这个吗?从自定义 FileProvider 提供静态文件时,以下解决方案似乎不起作用...
标签: asp.net-core webpack tag-helpers asp.net-core-tag-helpers