CSS 文件绝对 URL 在本地计算机上不起作用

本文关键字:计算机 不起作用 文件 URL CSS | 更新日期: 2023-09-27 18:31:12

答案

在这里发布这个,因为 8 个小时还没有过去,我无法回答我自己的问题:

我想通了。我从预渲染中删除了Server.MapPath,它使它正确。我的脑屁。谢谢大家

在我的代码中,我有:

CssIncludes.Add("~/Sites/0/PageLayouts/Predefined/News/CSS/HeaderMenu.css");

一旦在页面上呈现,它就会在页面源代码中显示为:

 <link href='C:'inetpub'wwwroot'mysite'Sites'0'PageLayouts'Predefined'News'CSS'HeaderMenu.css' type='text/css' rel='stylesheet' />

现在,如果我手动复制该 CSS URL 并将其粘贴到我的浏览器中,它会很好地加载 CSS,但它根本不会显示在我的 C:''localhost''mysite'' 上!

有什么解决办法吗?

CSS 包含列表:

public List<string> CssIncludes
    {
        get
        {
            if (_cssincluded == null)
                _cssincluded = new List<string>();
            return _cssincluded;
        }
    }
void Page_PreRender(object sender, EventArgs e)
    {
        foreach (string css in CssIncludes)
        {
            Page.Header.Controls.Add(new LiteralControl(string.Format("<link href='{0}' type='text/css' rel='stylesheet' />", Server.MapPath(css))));
        }
    }

CSS 文件绝对 URL 在本地计算机上不起作用

删除~符号再试一次,希望能用

在应用设置部分的 web.config 中添加网站路径键

<add key="Websitepath" value="http://www.yoursite.com" /> 

并使网址喜欢

includeCss(ConfigurationManager.AppSettings["Websitepath"].ToString()+"Sites/0/PageLayouts/Predefined/News/CSS/HeaderMenu.css";
ASP.Net 正在

尝试将CSS路径解析为Windows文件路径。

我建议你自己编写CSS <link/>,并使其相对于当前页面。

在这种情况下,正确的标记可能是:

<link type='text/css' rel='stylesheet' href='CSS/HeaderMenu.css'/>

请记住,任何链接都是 UNIX 样式的路径(即 /不是反斜杠)。

编辑:

阿斯克尔(沙人)的协议也需要Server.MapPath移除。

这可能是解析 css 路径的原因。

通了。我从预渲染中删除了Server.MapPath,它使它正确。谢谢大家。

改变:

CssIncludes.Add("~/Sites/0/PageLayouts/Predefined/News/CSS/HeaderMenu.css");

自:

CssIncludes.Add("../Sites/0/PageLayouts/Predefined/News/CSS/HeaderMenu.css");

并更改了

void Page_PreRender(object sender, EventArgs e)
{
    foreach (string css in CssIncludes)
    {
        Page.Header.Controls.Add(new LiteralControl(string.Format("<link href='{0}' type='text/css' rel='stylesheet' />", Server.MapPath(css))));
    }
}

自:

void Page_PreRender(object sender, EventArgs e)
{
    foreach (string css in CssIncludes)
    {
        Page.Header.Controls.Add(new LiteralControl(string.Format("<link href='{0}' type='text/css' rel='stylesheet' />", (css))));
    }
}