在Site.Master中设置表单背景图片

3
我尝试了所有方法来将一张图片作为背景显示。在我的本地Visual Studio Express安装中,我已经让它正常工作了,但是当我上传到互联网主机服务器时,它无法正确渲染。我曾经遇到过标题背景图片的同样问题,但是找到了一个解决方案,但是同样的解决方案不能用于表单背景。

如果我将相同的背景图片样式标签放在 div class="page" 中,它将在我的开发环境和互联网主机服务器上都能渲染,但是我想要我的页面在这个背景图片之上(也就是说,我的应用程序代码页面在这个背景图片之上)。

有什么想法或建议吗?

Site.Master 代码示例:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="MyApp.SiteMaster" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head runat="server">
    <title><%=Page.Title %></title>
    <link href="~/Styles/site.css" rel="stylesheet" type="text/css" />
    <link id="Link1" runat="server" rel="shortcut icon" href="~/favicon.ico" type="image/x-icon"/>
    <link id="Link2" runat="server" rel="icon" href="~/favicon.ico" type="image/ico"/>
    <asp:ContentPlaceHolder ID="HeadContent" runat="server">
    </asp:ContentPlaceHolder>
    <style type="text/css">
        .style1
        {
            text-align: center;
        }
    </style>

    <script runat="server">

    protected void Page_Load(object sender, EventArgs e)
    {

    }
     /* this code statement below is what I used to solve the header banner issue 
        but does not work for form background
     */
    public string imgHeaderPath = System.Web.VirtualPathUtility.ToAbsolute("~/Images/water-banner.jpg");


</script>
</head>
<body >
 <form runat="server" style="background-position: left top;  background-repeat: repeat; background-attachment: fixed; background-image: url('/Images/willnotdisplay.jpg')">

    <div class="page">

          <div class="header" style="background-image: url('<%= imgHeaderPath %>')">     
            <div class="title">                
                    <h1>&nbsp;<asp:Localize ID="Localize1" runat="server"  Text="<%$ Resources:Resource, Title %>" /></h1>
            </div>
.
.
.

我认为你间接回答了这个问题,但为了确保:您能直接访问生产服务器上的图像吗?例如,导航到“foo.com/Images/willnotdisplay.jpg”? - Michael Richardson
感谢您的回复。实际上我可以,但在这样做时,我注意到我的路径不是100%正确的。本地路径是root/images,而服务器路径是foo.com/registration/images。我尝试使用~/images/,但没有成功。当我硬编码/registration/image目录时,它可以工作。 - PGB
我对此有些新,但我可以看到文件夹差异会导致各种问题。你能否将你的图像移动到服务器或本地机器上的同一文件夹中? - Michael Richardson
1个回答

0

你应该可以直接这样做

<div class="header" style="background-image: url('/Images/water-banner.jpg')">

不使用imgHeaderPath的开销

这可能不会显示在您的开发机器上

或者您可以将以下内容添加到您的site.css文件中

div.header {background-image: url('/Images/water-banner.jpg');}

并且移除 div 上的 style 属性,这样在开发和生产环境中都能正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接