【问题标题】:'asp-src-include' doesn't resolve files“asp-src-include”不解析文件
【发布时间】: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


【解决方案1】:

我刚刚遇到这个问题,我想我已经弄清楚了。那里的许多示例都使用波浪号显示,但是如果您查看智能感知提示,它会说它与您的 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>

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

【讨论】:

    猜你喜欢
    • 2011-08-12
    • 2010-12-27
    • 1970-01-01
    • 2010-09-10
    • 2014-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-18
    相关资源
    最近更新 更多