C# CSS文件绝对URL在本地计算机上不工作

C# CSS文件绝对URL在本地计算机上不工作,c#,css,C#,Css,回答 在这里发布此消息,因为8小时后我还没有回答自己的问题: 我想出来了。我从预渲染中删除了Server.MapPath,它正确地渲染了它。我的大脑在放屁。谢谢大家 在我的代码中,我有: CssIncludes.Add("~/Sites/0/PageLayouts/Predefined/News/CSS/HeaderMenu.css"); 在页面上呈现后,它在页面源中显示为: <link href='C:\inetpub\wwwroot\mysite\Sites\0\PageLayou

回答

在这里发布此消息,因为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))));
        }
    }
公共列表包括
{
得到
{
如果(_cssincluded==null)
_cssincluded=新列表();
退货(包括在内);
}
}
无效页面\u预呈现(对象发送方,事件参数e)
{
foreach(CssIncludes中的字符串css)
{
Page.Header.Controls.Add(新的LiteralControl(string.Format(“,Server.MapPath(css)));
}
}

删除~签名并重试,我希望它能正常工作

在appSettings部分的web.config中添加网站路径键

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

请删除~sign并重试,我希望它能正常工作

在appSettings部分的web.config中添加网站路径键

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

ASP.Net正在尝试将css路径解析为windows文件路径

我建议您自己编写CSS
,并使其相对于当前页面

在这种情况下,合适的标签可能是:

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

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

编辑:

根据询问者(SandMan)
服务器。还需要删除MapPath


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

ASP.Net正在尝试将css路径解析为windows文件路径

我建议您自己编写CSS
,并使其相对于当前页面

在这种情况下,合适的标签可能是:

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

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

编辑:

根据询问者(SandMan)
服务器。还需要删除MapPath


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

解决了这个问题。我从预渲染中删除了Server.MapPath,它正确地渲染了它。谢谢各位

更改:

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页面\u预呈现(对象发送方,事件参数e)
{
foreach(CssIncludes中的字符串css)
{
Page.Header.Controls.Add(新的LiteralControl(string.Format(“,Server.MapPath(css)));
}
}
致:

void页面\u预呈现(对象发送方,事件参数e)
{
foreach(CssIncludes中的字符串css)
{
Page.Header.Controls.Add(新的LiteralControl(string.Format(“,(css)));
}
}

解决了这个问题。我从预渲染中删除了Server.MapPath,它正确地渲染了它。谢谢各位

更改:

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页面\u预呈现(对象发送方,事件参数e)
{
foreach(CssIncludes中的字符串css)
{
Page.Header.Controls.Add(新的LiteralControl(string.Format(“,Server.MapPath(css)));
}
}
致:

void页面\u预呈现(对象发送方,事件参数e)
{
foreach(CssIncludes中的字符串css)
{
Page.Header.Controls.Add(新的LiteralControl(string.Format(“,(css)));
}
}


尝试过,但没有任何改变:(为什么不将css路径放在html页面中而不是加载到代码文件中呢?其次,您可以将您的网站路径存储在一些配置文件中,比如web.config,然后再附加/Sites/0/PageLayouts/prefined/News/css/HeaderMenu.csi希望通过cs控制它,因为我有来自许多不同布局设计的不同css集。在web.conf中添加。)ig在appSettings部分“/>创建类似ConfigurationManager.appSettings[“Websitepath”]+Sites/0/PageLayouts/Predefined/News/CSS/HeaderMenu.CSS的url;我发现了,我删除了server.mappath,我想我昨晚睡眠不足。这很尴尬,尝试了,但没有改变任何事情:(为什么不将css路径放在html页面中而不是加载到代码文件中呢?其次,您可以将您的网站路径存储在一些配置文件中,比如web.config,然后再附加/Sites/0/PageLayouts/prefined/News/css/HeaderMenu.csi希望通过cs控制它,因为我有来自许多不同布局设计的不同css集。在web.conf中添加。)ig在appSettings部分“/>,并使url类似于ConfigurationManager.appSettings[“Websitepath”]+Sites/0/PageLayouts/Predefined/News/CSS/HeaderManu.CSS;我发现了,我删除了server.mappath,我想我昨晚睡眠不足。非常尴尬这是我设置的一个列表。将它添加到底部的问题中我发现了,我删除了服务器。mappath这是我设置的一个列表。将它添加到底部的问题中我发现了我删除了Server.mappath。我添加了上面的代码,以显示我是如何通过C#将CSS控件添加到我的页面的。是的。我有一个大脑屁。我删除了Server.mappath,它工作正常。如果有人将我的答案放入答案中,我会将其标记为正确,就像我在8小时内无法标记自己的一样。我添加上面的代码是为了显示我是如何添加的g通过C#将CSS控件添加到我的页面。是的。我有一个大脑屁。我删除了server.mappath,它工作正常。如果有人将我的答案放入答案中,我会将其标记为正确,因为我在8小时内无法标记自己的答案。