使用gridview显示图像可以在本地工作,但不能在服务器上工作
本文关键字:工作 gridview 但不能 服务器 图像 显示图 使用 显示 | 更新日期: 2023-09-27 18:23:44
我正在尝试显示存储在项目文件夹中的一些图像图片/皮夹克。
项目文件夹布局:
images/bookjacket/*images.jpg*
Default.aspx
Default.aspx.cs
以下是所涉及的网格视图代码:
<asp:GridView ID="gvCatalog" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:ImageField DataImageUrlField="Path">
</asp:ImageField>
<asp:TemplateField>
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("Path") %>'>
</asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Image ID="Image1" runat="server" ImageUrl='<%# Eval("Path") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Path" HeaderText="Path" />
</Columns>
</asp:GridView>
我发送的路径示例如下:
~/images/bookjackets/9780316407014.jpg
在我的服务器上,我得到了蓝色的"图像"图标。服务器映像
在我的本地主机上,一切似乎都很好。(imageField和templateField都显示了图片。本地视图
根据这项研究(浏览了整个网络),这应该是可行的。
在firebug或chrome(开发工具)中检查您的html并尝试put。/与图像路径位置中的~/不同,它还取决于图像文件夹的位置。
表示父目录,其中../代表父对象的父对象。
这里有一个详细的答案:URL路径中的点是什么意思?。
您可以尝试更改路径。。。
./images/bookjackets/9780316407014.jpg
或
../images/bookjackets/9780316407014.jpg
或
直接
/images/bookjackets/9780316407014.jpg
或
~/images/bookjackets/9780316407014.jpg
答案!
我希望这能帮助其他人。您必须将images文件夹放在生产服务器(根级别)上包含App_Data和App_Code的同一文件夹中。此外,您还需要在images文件夹中添加一个Web.config文件。
<?xml version="1.0"?>
<configuration>
<location path="images">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
</configuration>
如果你将单个图像放在图像的唯一子文件夹中,你可以将其用于多个网站(就像我在''bookjackets中所做的那样)。