【问题标题】:Display images in masterpage on first time IIS default document is called首次调用 IIS 默认文档时在母版页中显示图像
【发布时间】:2012-09-24 13:44:01
【问题描述】:

我得到了一个解决方案,其中主页(Default.aspx) 在此位置 "D:\Websites\wwwFlofab\HomeSite\Default\Pages" 使用母版页 (Site.Master) 在此位置 "D:\Websites\wwwFlofab\HomeSite\Master\Pages"

访问我们的网站时,我们使用Default.aspx(不是上面提到的那个)重定向到我的Default.aspx。这样,当我输入我们的网址时,它正在重定向,所以我没有得到"http://www.mywebsite.com",而是得到了类似"http://www.mywebsite.com/HomeSite/Default/Pages/Default.aspx"

我不喜欢在第一次加载时显示 "/HomeSite/Default/Pages/Default.aspx",因此我将 IIS 7.5 默认文档更改为 "Default/Pages/Default.aspx" 以避免重定向。

它现在可以在首次加载时正确显示 (http://www.mywebsite.com)。

然后我看到了一些我不明白的东西,这就是我在这里发帖的原因:)

在我的母版页中,我有很多这样显示的图像

<img src='~/Styles/images/ASME.png' />

更改 IIS 默认文档后,所有这些图像(在母版页中)都没有显示(仅在首次加载时)。为了正确显示它们,我需要添加我们的 url。

<img src='http://www.mywebsite.com/HomeSite/Styles/images/ASME.png' />

为什么我的图像会在手动重定向时正确显示,而不是从 IIS 调用时?

同样的页面,同样的文件夹,只是改变了网址。

【问题讨论】:

    标签: c# asp.net iis redirect


    【解决方案1】:

    您在图像路径中使用了“~”符号,但未添加 runat="server",因此路径按原样发送给客户端。

    客户端把你的图片路径和页面地址的url结合起来,所以"http://www.mywebsite.com/HomeSite/Default/Pages/Default.aspx"'~/Styles/images/ASME.png'解析在"http://www.mywebsite.com/HomeSite/Styles/images/ASME.png",但是当地址只是主机名时,就会产生图片url在"http://www.mywebsite.com/Styles/images/ASME.png"

    解决的方法是在图片中添加runat="server",这样服务器无论如何都会解析正确的客户端url。

    <img runat="server" src='~/Styles/images/ASME.png' />
    

    【讨论】:

    • 但是我应该怎么做才能包含
    • 在你有服务器路径的任何地方添加 runat=server,包括脚本。
    • 不知道我可以把 runat="server" 放在脚本上,再次感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    • 2012-07-24
    • 1970-01-01
    • 1970-01-01
    • 2015-05-02
    • 1970-01-01
    相关资源
    最近更新 更多