C# CSS文件绝对URL在本地计算机上不工作
回答 在这里发布此消息,因为8小时后我还没有回答自己的问题: 我想出来了。我从预渲染中删除了Server.MapPath,它正确地渲染了它。我的大脑在放屁。谢谢大家 在我的代码中,我有: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
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小时内无法标记自己的答案。