'asp-src-include'无法解析文件

Nas*_*sto 6 webpack tag-helpers asp.net-core asp.net-core-tag-helpers

我正在使用ASP.Net Core,打字稿,React和Webpack构建一个Webapp。叫做Ui.WebApp。React应用位于,Ui.WebApp/ClientAppwebpack构建输出到Ui.WebApp/ClientApp/dist。在我中,Startup.cs我包括了

app.UseStaticFiles(new StaticFileOptions {
        FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), "ClientApp/dist"))
    }
);
Run Code Online (Sandbox Code Playgroud)

那是有效的,即当我加载样式时_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在运行时验证标记助手并选择正确的位置?

Mat*_*ice 2

我刚刚遇到这个问题,我想我已经弄清楚了。很多示例都显示了使用波浪号,但如果您查看智能感知提示,它会说它与您的 Webroot 设置相关。所以你不需要波浪号,事实上它似乎打破了它。这似乎至少对于 .net core 2.1 是正确的

我终于让它像你的例子一样工作:

<script asp-src-include="main_*.js"></script>
Run Code Online (Sandbox Code Playgroud)

所以这是我的第一次尝试,但没有成功:

<script type="text/javascript" asp-src-include="~/dist/**/*.js"></script>
Run Code Online (Sandbox Code Playgroud)

但改成这个之后,就真的是这样了!

<script type="text/javascript" asp-src-include="dist/**/*.js"></script>
Run Code Online (Sandbox Code Playgroud)

希望这可以为其他人节省大量的挫败感。