- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在开发一个网站,我想在该网站上使用就地编译,以便更快地获得首次点击。我想使用 ClientBuildManager
. CompileFile
进行就地编译的方法,以便我可以控制编译过程。出于各种原因,这是编译该网站的理想方式。
当我通过 ClientBuildManager
按文件编译网站文件时. CompileFile
为此目的构建的 exe 中的方法,输出转到“临时 ASP.NET 文件”下的子目录。但是,当网站稍后被访问时,IIS 会在“Temporary ASP.NET Files”下的不同子目录下重建控件,使之前的就地编译变得毫无值(value)。
注意:在“临时 ASP.NET 文件”下就地编译期间创建的程序集将单独保留(仍然存在)。
注意:就地编译程序集文件夹和 IIS 生成的程序集文件夹都在同一个“Temporary ASP.NET Files”目录下。
例子:
ClientBuildManager
. CompileFile
配置var buildParameter = new ClientBuildManagerParameter
{
PrecompilationFlags = PrecompilationFlags.Default,
};
var clientBuildManager = new ClientBuildManager(
RootVirtualPath, RootPhysicalPath, null, buildParameter);
...
clientBuildManager.CompileFile(relativeVirtualPath, callback);
其中 RootVirtualPath
只是默认网站的“”。 RootPhysicalPath
指向网站在磁盘上的位置。 relativeVirtualPath
的格式为“~/myFile.aspx”。回调用于跟踪进度。
最佳答案
我认为您所看到的实际上与 CompileFile
与 PrecompileApplication
的使用无关。即,如果您要执行相同的操作但调用 PrecompileApplication()
,您仍然会遇到文件夹不匹配的情况。
请注意,从技术上讲,您没有正确创建 CBM 对象。正确的调用方式是依靠 IIS 信息来定位文件。为此:
appVirtualDir
传递类似于 /LM/W3SVC/7/ROOT/
的内容>appPhysicalSourceDir
传递空值请注意,“7”只是一个示例。要获得正确的数字:
/LM/W3SVC/ID/ROOT/
我解释这个是为了记录在案,因为不幸的是,即使以这种方式我也无法使文件夹匹配。有可能这种情况只是在 ASP.NET 中被打破(它曾经有效!)。
另一种可能性是在服务器端进行。例如
BuildManager.GetCompiledType("~/myfile.aspx")
,并对您要预编译的每个页面(或用户控件等)进行类似调用。当然,还有一种低技术含量的替代方法,即只需提前请求您想要编译的页面来预热您的网站。
关于c# - 使用 ClientBuildManager.CompileFile 就地编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15277249/
我正在开发一个网站,我想在该网站上使用就地编译,以便更快地获得首次点击。我想使用 ClientBuildManager . CompileFile进行就地编译的方法,以便我可以控制编译过程。出于各种原
我最近在node-js应用程序中从jade模板引擎切换到了swig。在使用jade时我使用了命令 jade.render('/sample.jade',{obj:object});渲染模板并传递对象。
我是一名优秀的程序员,十分优秀!