sim*_*olo 26 c# asp.net asp.net-mvc razor
这与第一个请求到达时的延迟体验不同,但这是每次第一次访问基于Razor的视图时所经历的延迟,可能需要一两秒钟.对该视图的所有后续请求都非常快.即使对于没有进行任何编程工作的简单视图(例如访问数据库等),也会发生这种情况.
我已经debug=false在配置文件中的system.web下的编译标签中确保了这一点.
我还删除了设置Razor作为唯一的视图引擎 Global.asax
什么可能导致这种延迟? 这似乎是旧的asp.net'网站'在它转移到'web应用程序'之前经历的一个问题,其中每个.aspx.cs代码隐藏都是在部署而不是在运行时编译的.Razor还会受此影响吗?
Xen*_*ing 31
该问题是由Razor视图的解析和编译引起的.一旦编译了视图,它们就会很快执行.视图仅在第一次查看请求时进行解析和编译,或者自上次编译后视图已被修改.
您可以通过将视图作为发布过程的一部分进行预编译,在已部署的WebApp上解决此问题.请参阅下图,了解如何使用标准发布对话框在VS2012中执行此操作.
如果您愿意,可以选择可更新选项,但对于生产站点,我不推荐它.

小智 5
网油。它在第一次加载时缩小您的生产 js 和 css 包,然后缓存它们。问题是,当缩小出现错误时,它每次都会尝试编译,运行其中的任何错误例程。没有错误报告,找出这种情况发生的唯一方法是直接打开引用并查看以下内容:
/* Minification failed. Returning unminified contents.
(69,1): run-time error CSS1019: Unexpected token, found '@import'
(69,9): run-time error CSS1019: Unexpected token, found '"variables.less"'
(70,1): run-time error CSS1019: Unexpected token, found '@import'
Run Code Online (Sandbox Code Playgroud)
这(在上述情况下)表明您不必要的 .less 或 .sass 文件已发布 - 这通常是通配符捆绑的结果。通配符捆绑将花费您比节省的更多时间。