mvc app,razor .cshtml页面,
<!DOCTYPE html>
<html lang="en">
然后是几个图像标签(埋藏在各种其他不重要的东西中?)
<img src="data:image/png;base64,iVBORw0KGLk8o8pcD58AAAAAASUVORK5CYII=" /> (it's WAY longer, Visual Studio converted this one)
<img src="~/Views/Images/logosmall.png" />
转换后的那个显示,'常规'一个不在任何浏览器中,它只是一个图像标签,发生了什么?只是想一想,路径问题是否简单? :)
为什么常规工作不起作用?
我该怎么转换? (我不确定我是如何转换第一个......)
正在转换现在最好的做法,什么是利弊?
答案 0 :(得分:2)
逐一回答您的问题
<强> 1。为什么<img src="~/Views/Images/logosmall.png" />
不起作用
ASP.NET MVC默认会在web.config
文件夹中放置~/Views
,并出于安全原因拒绝任何直接文件访问。建议不要更改它,因为所有视图文件都将以普通代码存储在文件夹中。您应该将静态内容移到~/Views
文件夹之外。
<强> 2。关于base64 img标签(您的第一个img标签)
将图像转换为base64字符串意味着整个图像文件将内嵌在html中,即您不需要额外的http请求来获取html的图像。它有利有弊。优点是你节省了1个额外的http请求,缺点是你的html文件会更重,而且你的图像无法利用浏览器缓存,因为它与html一起使用。是否使用取决于具体情况。