JavaScript和CSS缩微器在Servicestack中不工作
在最新版本的Servicestack中,引入了。所以,在项目中尝试了它们。我可以缩小razor页面,但不能缩小添加到页面中的javascript或css文件 我已经复制粘贴了代码JavaScript和CSS缩微器在Servicestack中不工作,javascript,css,
servicestack,servicestack-razor,Javascript,Css,
servicestack,Servicestack Razor,在最新版本的Servicestack中,引入了。所以,在项目中尝试了它们。我可以缩小razor页面,但不能缩小添加到页面中的javascript或css文件 我已经复制粘贴了代码 public override List<IVirtualPathProvider> GetVirtualPathProviders() { var existingProviders = base.GetVirtualPathProviders(); var memFs = new InM
public override List<IVirtualPathProvider> GetVirtualPathProviders()
{
var existingProviders = base.GetVirtualPathProviders();
var memFs = new InMemoryVirtualPathProvider(this);
//Get existing Local FileSystem Provider
var fs = existingProviders.First(x => x is FileSystemVirtualPathProvider);
//Process all .html files:
foreach (var file in fs.GetAllMatchingFiles("*.html"))
{
var contents = Minifiers.HtmlAdvanced.Compress(file.ReadAllText());
memFs.AddFile(file.VirtualPath, contents);
}
//Process all .css files:
foreach (var file in fs.GetAllMatchingFiles("*.css")
.Where(file => !file.VirtualPath.EndsWith(".min.css"))) //ignore pre-minified .css
{
var contents = Minifiers.Css.Compress(file.ReadAllText());
memFs.AddFile(file.VirtualPath, contents);
}
//Process all .js files
foreach (var file in fs.GetAllMatchingFiles("*.js")
.Where(file => !file.VirtualPath.EndsWith(".min.js"))) //ignore pre-minified .js
{
try
{
var js = file.ReadAllText();
var contents = Minifiers.JavaScript.Compress(js);
memFs.AddFile(file.VirtualPath, contents);
}
catch (Exception ex)
{
//As JSMin is a strict subset of JavaScript, this can fail on valid JS.
//We can report exceptions in StartUpErrors so they're visible in ?debug=requestinfo
base.OnStartupException(new Exception("JSMin Error {0}: {1}".Fmt(file.VirtualPath, ex.Message)));
}
}
//Give new Memory FS the highest priority
existingProviders.Insert(0, memFs);
return existingProviders;
}
public覆盖列表GetVirtualPathProviders()
{
var existingProviders=base.GetVirtualPathProviders();
var memFs=新的InMemoryVirtualPathProvider(此);
//获取现有的本地文件系统提供程序
var fs=existingProviders.First(x=>x是FileSystemVirtualPathProvider);
//处理所有.html文件:
foreach(fs.GetAllMatchingFiles(“*.html”)中的var文件)
{
var contents=Minifiers.HtmlAdvanced.Compress(file.ReadAllText());
AddFile(file.VirtualPath,contents);
}
//处理所有.css文件:
foreach(fs.GetAllMatchingFiles(“*.css”)中的var文件)
.Where(file=>!file.VirtualPath.EndsWith(“.min.css”))//忽略预先缩小的.css
{
var contents=Minifiers.Css.Compress(file.ReadAllText());
AddFile(file.VirtualPath,contents);
}
//处理所有.js文件
foreach(fs.GetAllMatchingFiles(“*.js”)中的var文件)
.Where(file=>!file.VirtualPath.EndsWith(“.min.js”))//忽略预先缩小的.js
{
尝试
{
var js=file.ReadAllText();
var contents=Minifiers.JavaScript.Compress(js);
AddFile(file.VirtualPath,contents);
}
捕获(例外情况除外)
{
//由于JSMin是JavaScript的严格子集,因此在有效的JS上可能会失败。
//我们可以在StartUpErrors中报告异常,以便它们在?debug=requestinfo中可见
OnStartupException(新异常(“JSMin错误{0}:{1}”.Fmt(file.VirtualPath,ex.Message));
}
}
//为新内存FS提供最高优先级
existingProviders.Insert(0,memFs);
返回现有的提供者;
}
在调试过程中我发现了这一点。它确实在缩小文件规模,但有些是如何做到的
我还尝试过调试和发布,甚至使用部署的版本。但是,我在这里添加的JavaScript和CSS作为参考仍然只是使用了beutified格式
我做错什么了吗?请更具体地说明什么不起作用?i、 e.什么请求(例如,哪个文件)没有得到输出?(请提供HTTP请求/响应头)特定文件是否成功缩小?你能发布HTTP请求和对不起作用的响应吗?还有
?debug=requestinfo
?@mythz中报告的启动异常吗?我想这是我的错。在chrome控制台中,js和css文件的jQuery和Bootstrap都显示为“优化”,但当我在浏览器中查看源代码并打开js文件时,它只是缩小了。但奇怪的是,在控制台中,我编写的app.js和app.css的js文件都显示了缩小版,我真的不知道为什么。该过程中没有错误捕获。