我是使用IIS的新手。我已将我的ASP.NET应用程序发布到IIS服务器中,该应用程序使用第三方HTML加载器,它加载HTML但在发布时不应用.css文件中的效果。我在HTML
的head标签中添加以下内容<link href="~/input/docgenix.css" rel="stylesheet" type="text/css" />
我将CSS文件保存在已发布应用程序的输入文件夹中。
另一方面,如果从互联网上的一些预先存在的页面的源添加HTML以及到其CSS文件的链接,则可以看到CSS文件的效果。例如:
<link rel="stylesheet" type="text/css" href="http://cdn.sstatic.net/stackoverflow/all.css">
我的猜测是我的CSS没有随应用程序一起发布。请帮帮我。如何正确发布此CSS文件?
答案 0 :(得分:2)
文件路径的~
部分(表示&#34;应用程序root&#34;)无法识别客户端。
您有两种选择 - 生成<link>
元素服务器端(runat="server"
)并在那里填充href
属性(其中~
被识别,使用{{1或者,或者构造一个不包含波浪号的适当相对路径(这可能更有效)。
相对路径
如果您的应用程序托管在域根级别,可能只需丢失代字号(Page.ResolveUrl()
):
~
服务器端解决方案:
无论Web应用程序是在域根级别还是在文件夹(<link href="/input/docgenix.css" rel="stylesheet" type="text/css" />
vs mysite.com/myapp
内)托管,这都可以正常工作,但效率可能会低一些。
在标记中:
mysite.com
并在代码隐藏中:
<link id="lnk" runat="server" rel="stylesheet" type="text/css" />
(注意:这是未经测试的)
答案 1 :(得分:1)
<link href="<%= Page.ResolveUrl("~/input/docgenix.css") %>" rel="stylesheet" type="text/css" />