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))));
}
}
删除~符号再试一次,希望能用
在应用设置部分的 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))));
}
}