使用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都显示了图片。本地视图

根据这项研究(浏览了整个网络),这应该是可行的。

使用gridview显示图像可以在本地工作,但不能在服务器上工作

在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中所做的那样)。