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在运行时验证标记助手并选择正确的位置?
我刚刚遇到这个问题,我想我已经弄清楚了。很多示例都显示了使用波浪号,但如果您查看智能感知提示,它会说它与您的 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)
希望这可以为其他人节省大量的挫败感。
| 归档时间: |
|
| 查看次数: |
131 次 |
| 最近记录: |