MVC中的图像标签,路径限制,base64编码

时间:2014-08-08 18:06:48

标签: html asp.net-mvc razor

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" />

转换后的那个显示,'常规'一个不在任何浏览器中,它只是一个图像标签,发生了什么?只是想一想,路径问题是否简单? :)

为什么常规工作不起作用?

我该怎么转换? (我不确定我是如何转换第一个......)

正在转换现在最好的做法,什么是利弊?

1 个答案:

答案 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一起使用。是否使用取决于具体情况。