gpt4 book ai didi

asp.net-core - “asp-src-include”不解析文件

转载 作者:行者123 更新时间:2023-12-04 13:57:29 28 4
gpt4 key购买 nike

我正在使用 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 在运行时验证标签助手并选择正确的位置?

最佳答案

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

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

<script asp-src-include="main_*.js"></script>

所以这是我的第一次尝试,但不起作用:
<script type="text/javascript" asp-src-include="~/dist/**/*.js"></script>

但是当变成这个时,它确实如此!
<script type="text/javascript" asp-src-include="dist/**/*.js"></script>

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

关于asp.net-core - “asp-src-include”不解析文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55498655/

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