HTML img и ASP.NET Изображение и относительные пути
Каков правильный способ ссылки на изображение в ASP.NET для прямого развертывания в IIS?
Следующие работы в dev и production:
<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" />
Ответы
Ответ 1
Если вы хотите использовать обычный тег img
с контуром ~
, вы можете просто добавить runat="server"
в тег как атрибут (например, обычные элементы управления сервером), и путь будет разрешен. например:
<img src="~/App_Themes/Default/images/two.gif" runat="server" />
Для вашей второй части используется ссылка../изображения на более чем одной странице, например пользовательская панель управления или главная страница (и т.д.), чтобы вы могли использовать ее на разных уровнях папок...
Ответ 2
~ будет работать только на сервере, например, или. Это говорит ASP.Net вставить путь приложения. Когда-то это просто "/", но если ваше приложение не является корневым каталогом веб-сайта, оно будет содержать путь, в котором он находится. Тег img - это просто html, и он не будет изменен ASP.Net, поэтому браузер получит путь "~/App_Themes/Default/images/two.gif" и не знает, как его прочитать.
Я не знаю, почему последний пример работает в dev, но не в производстве. Это может иметь какое-то отношение к тому, что приложение находится в корневом каталоге в dev, но в подкаталоге в процессе производства.
Ответ 3
Я использую этот синтаксис для доступа к изображениям с мастер-страниц
<img src="<%=ResolveUrl("~/Content/Images/error_img.jp")%>" width="350" style="padding-right: 15px; padding-top: 20px;"/>
Ответ 4
Это сработало для меня
$( ". selector" ). attr ('src', "Content/themes/base/images/img.png" );
Важно то, что у вас нет "/" в начале вашего нового src.
Ответ 5
byte[] imageArray = System.IO.File.ReadAllBytes(Server.MapPath("~/Images/Upload_Image.png"));
string base64ImageRepresentation = Convert.ToBase64String(imageArray);