2012-11-23 33 views
4

我是使用IIS的新手。我已將ASP.NET應用程序發佈到IIS服務器中,該應用程序使用第三方HTML加載器,該加載器加載HTML,但在發佈時不會應用.css文件中的效果。我在HTML標頭中添加以下內容在IIS中發佈CSS文件

<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文件?

回答

1

你有試過嗎? :

<link href="<%= Page.ResolveUrl("~/input/docgenix.css") %>" rel="stylesheet" type="text/css" /> 
+0

thnks但不工作 – user1847102

2

的文件路徑的一部分~(意思是「應用程序根」)不被識別的客戶端。

有兩個選項 - 生成<link>元件服務器端(runat="server")和填充href屬性有(其中~被識別時,使用Page.ResolveUrl()),或者可替換地構造不包括波形符適當的相對路徑(這可能更有效)。

相對路徑

可能只需要失去了波浪線(~)如果你的應用是在域根級別託管:

<link href="/input/docgenix.css" rel="stylesheet" type="text/css" /> 

服務器端解決方案:

無論Web應用程序是在域根級還是在一個文件夾中,這都可以工作(mysite.com/myapp vs mysite.com),但可能效率稍差。

在標記:

<link id="lnk" runat="server" rel="stylesheet" type="text/css" /> 

,並在後臺代碼:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     lnk.Attributes["href"] = Page.ResolveUrl("~/input/docgenix.css"); 
    } 
} 

(注:這是未經測試)

+0

您是如何建議我做那條路? – user1847102

+0

用示例更新了我的答案。 – tomfanning

+0

你爲什麼不接受我的回答? – tomfanning