asp-append-version =“true”这应该将版本附加到脚本。使用.net核心1.1它运行得很好。最近升级到2.0版,它不再有效。有什么想法吗?
答案 0 :(得分:2)
https://github.com/MarkPieszak/aspnetcore-angular2-universal/issues/471
基本上你现在需要
@addTagHelper "*, Microsoft.AspNetCore.Mvc.TagHelpers"
为了方便起见,您可以在Views文件夹下有一个全局_ViewImports.cshtml文件,只需将该行放入其中,它就会将该行应用于所有View页面。
答案 1 :(得分:1)
在 MVC 中,我们可以通过维护配置值来进行版本控制,然后使用公共类在 JS 和 CSS 引用中附加版本。
CS:
public static class StaticFileHelper
{
static string staticVersion;
static StaticFileHelper()
{
staticVersion = System.Configuration.ConfigurationManager.AppSettings["JSVersioning"];
}
public static string StaticFile(this UrlHelper html, string filename)
{
var virtualPath = ReleaseVirtualPath(filename);
var root = html.RequestContext.HttpContext.Request.ApplicationPath;
if (root.Length > 1)
{
virtualPath = root + virtualPath;
}
return virtualPath;
}
}
答案 2 :(得分:0)
在这种情况下,我提出了解决方案
<link rel="stylesheet" type="text/css" href="\css\custom.css?v=@Generator.RandomStringGenerator(9)">
所以我的随机生成器正在为版本生成不同的字符串,所以我再也不会遇到这种情况。我也为有兴趣的人共享随机字符串生成器。
private static Random random = new Random();
public static string RandomStringGenerator(int length)
{
const string chars = "abcdefghijklmnopqrstuwxyz0123456789";
return new string(Enumerable.Repeat(chars, length)
.Select(s => s[random.Next(s.Length)]).ToArray());
}
答案 3 :(得分:0)
在MVC解决方案中,asp-append-version =“ true”无法将动态关键字附加到JS和CSS文件名。我们可以通过在文件名引用中添加?dt = @(DateTime.Now.Ticks)来实现。
<link href="~/css/AdminLTE.css?dt=@(DateTime.Now.Ticks)" rel="stylesheet" />
<script src="~/js/Common.js?dt=@(DateTime.Now.Ticks)"></script>