HTML img и ASP.NET Image и относительные пути - PullRequest
16 голосов
/ 04 марта 2011

Как правильно ссылаться на образ в ASP.NET для развертывания в реальном времени на IIS?

Следующие работы в разработке и производстве:

<asp:ImageButton ID="ibnEdit" runat="server" OnClick="ibnEdit_Click" ImageUrl="~/App_Themes/Default/images/one.png" Visible="false" ToolTip="Edit" />

Следующее тоже не работает: (почему нет?)

<img src="~/App_Themes/Default/images/two.gif" />

Следующие работы в dev, но не в производстве:

<img src="../App_Themes/Default/images/two.gif" />

Ответы [ 5 ]

24 голосов
/ 04 марта 2011

Если вы хотите использовать обычный тег img с путем ~, вы можете просто добавить runat="server" в тег в качестве атрибута (как обычные элементы управления сервером), и путь будет разрешен. например:

<img src="~/App_Themes/Default/images/two.gif" runat="server" /> 

Для вашей второй части, ссылка на изображение ../ появляется на нескольких страницах, например на пользовательском элементе управления или главной странице (и т. Д.), Так что вы можете использовать ее на разных уровнях папок ...

6 голосов
/ 06 августа 2014

Я использую этот синтаксис для доступа к изображениям с главных страниц

<img src="<%=ResolveUrl("~/Content/Images/error_img.jp")%>" width="350" style="padding-right: 15px; padding-top: 20px;"/>
5 голосов
/ 04 марта 2011

~ будет работать только на серверном элементе управления, таком как или.Это говорит ASP.Net, чтобы вставить путь приложения.Иногда это просто "/", но если ваше приложение не является корневым каталогом веб-сайта, оно будет содержать путь, по которому оно находится. Тег img - это просто html, и он не будет изменен ASP.Net, поэтому браузер получает путь"~ / App_Themes / Default / images / two.gif" и не знает, как его читать.

Я не знаю, почему последний пример работает в dev, но не работает.Это может быть связано с тем, что приложение находится в корневом каталоге в dev, но в подкаталоге в рабочем состоянии.

0 голосов
/ 25 января 2017
byte[] imageArray = System.IO.File.ReadAllBytes(Server.MapPath("~/Images/Upload_Image.png"));

string base64ImageRepresentation = Convert.ToBase64String(imageArray);
0 голосов
/ 25 августа 2016

Это сработало для меня

$ (". Selector"). Attr ('src', "Content / themes / base / images / img.png");

Важно то, что у вас нет "/" в начале вашего нового источника.

...