4

私は 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 ファイルを適切に公開するにはどうすればよいですか?

4

2 に答える 2

2

ファイル パスの~一部 (「アプリケーション ルート」を意味します) は、クライアント側で認識されません。

2 つのオプションがあります -<link>要素サーバー側 ( runat="server") を生成し、hrefそこに属性を設定する (~を使用して が認識される場所Page.ResolveUrl())、またはチルダを含まない適切な相対パスを作成する (おそらくより効率的です)。

相対パス

~アプリケーションがドメイン ルート レベルでホストされている場合は、おそらくチルダ ( ) をなくす必要があります。

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

サーバー側のソリューション:

これは、Web アプリケーションがドメイン ルート レベルでホストされているか、フォルダー ( mysite.com/myappvs 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");
    }
}

(注:これはテストされていません)

于 2012-11-23T10:17:03.090 に答える
1

これを試しましたか?:

<link href="<%= Page.ResolveUrl("~/input/docgenix.css") %>"  rel="stylesheet" type="text/css" />
于 2012-11-23T10:16:44.447 に答える