C# 使用gridview显示图像可以在本地工作,但不能在服务器上工作
我正在尝试显示存储在项目文件夹中的一些图像 图片/书夹 项目文件夹布局:C# 使用gridview显示图像可以在本地工作,但不能在服务器上工作,c#,asp.net,gridview,C#,Asp.net,Gridview,我正在尝试显示存储在项目文件夹中的一些图像 图片/书夹 项目文件夹布局: images/bookjacket/*images.jpg* Default.aspx Default.aspx.cs 以下是涉及的gridview代码: <asp:GridView ID="gvCatalog" runat="server" AutoGenerateColumns="False"> <Columns> <asp:ImageField DataImag
images/bookjacket/*images.jpg*
Default.aspx
Default.aspx.cs
以下是涉及的gridview代码:
<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>
在我的服务器上,我得到了蓝色的“图像”图标。
在我当地的主人看来一切都很好。(imageField和templateField都显示图片。
根据研究(已经浏览了整个网页),这应该是可行的。在firebug或chrome(开发工具)中检查html,然后尝试将./而不是~/放入图像路径位置,这还取决于图像文件夹的位置 ./表示父目录,其中../表示父目录的父目录
下面是一个详细的答案:.在firebug或chrome(开发工具)中检查html,然后尝试将./而不是~/放入图像路径位置,这还取决于图像文件夹的位置 ./表示父目录,其中../表示父目录的父目录
下面是一个详细的答案:。您可以尝试更改路径
./images/bookjackets/9780316407014.jpg
或
../images/bookjackets/9780316407014.jpg
~/images/bookjackets/9780316407014.jpg
或
../images/bookjackets/9780316407014.jpg
~/images/bookjackets/9780316407014.jpg
直接的
/images/bookjackets/9780316407014.jpg
或
../images/bookjackets/9780316407014.jpg
~/images/bookjackets/9780316407014.jpg
你可以尝试改变你的道路
./images/bookjackets/9780316407014.jpg
或
../images/bookjackets/9780316407014.jpg
~/images/bookjackets/9780316407014.jpg
或
../images/bookjackets/9780316407014.jpg
~/images/bookjackets/9780316407014.jpg
直接的
/images/bookjackets/9780316407014.jpg
或
../images/bookjackets/9780316407014.jpg
~/images/bookjackets/9780316407014.jpg
答案
我希望这对其他人有所帮助。您必须将images文件夹放在生产服务器(根级别)上包含App_数据和App_代码的同一文件夹中。此外,您需要在images文件夹中添加一个Web.config文件
<?xml version="1.0"?>
<configuration>
<location path="images">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
</configuration>
如果您将单个图像放在图像的唯一子文件夹中(如我在\BookJackes中所做的),则可以将其用于多个网站。答案
我希望这对其他人有所帮助。您必须将images文件夹放在生产服务器(根级别)上包含App_数据和App_代码的同一文件夹中。此外,您需要在images文件夹中添加一个Web.config文件
<?xml version="1.0"?>
<configuration>
<location path="images">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
</configuration>
如果您将单个图像放在图像的唯一子文件夹中(如我在\BookJackes中所做的那样),您可以将其用于多个网站。我的图像文件夹与我的应用程序处于同一级别,并且它在本地工作,这告诉我路径是“正确的”。我仍然对它在我的本地主机上运行而不是在服务器上感到困惑。我想知道我是否可以将images文件夹放在App_数据中,但我在某个地方读到App_数据不允许提供图像。如果你有足够的权限写入文件,你可以将images文件夹放在App_数据中,但不建议这样做。你有吗ried使用chrome中的inspect element工具,如果不尝试前缀为./,../,…/,则尝试不同的路径。让我也检查一下您共享的链接。我尝试了images/然后我尝试了/images,然后我尝试了./images。不幸的是,没有任何效果(事实上,我认为这是一个使用web.config允许用户访问图像的案例。我正在搜索黑板上的答案。我终于能够检查元素并看到“url”有.././在图像前面,这表明文件夹图像需要在我的根文件夹中。很好的呼叫。我的图像文件夹与我的应用程序处于同一级别,并且它在本地工作,这告诉我路径是“正确的”。我仍然对它在我的本地主机上运行而不是在服务器上感到困惑。我想知道我是否可以将images文件夹放在App_数据中,但我在某个地方读到App_数据不允许提供图像。如果你有足够的权限写入文件,你可以将images文件夹放在App_数据中,但不建议这样做。你有吗ried使用chrome中的inspect element工具,如果不尝试前缀为./,../,…/,则尝试不同的路径。让我也检查一下您共享的链接。我尝试了images/然后我尝试了/images,然后我尝试了./images。不幸的是,没有任何效果(事实上,我认为这是一个使用web.config允许用户访问图像的案例。我正在搜索黑板上的答案。我终于能够检查元素并看到“url”在表明文件夹图像需要在我的根文件夹中的图像前面有../..尼斯呼叫…/和/不工作,因为图像文件夹应与Default.aspx处于同一级别。直接方法和~method在本地工作,但在服务器上不工作…/和/不工作,因为图像文件夹应处于同一级别直接方法和~method在本地工作,但不在服务器上工作。