0

Visual Studio 2008 で MVC アプリケーションを実行すると、Web サイトのスタイルや画像などは問題なく表示されます。

しかし、このビルドをフォルダーに公開し、IIS を使用してそれを表示すると、スタイリングが乱雑になり、画像が正しくありません。

最初は、これはスタイル シートに関するエラーだと思っていましたが、MVC テンプレートですぐに使用できるスタイルシートをわずかに変更したバージョンのみを使用しています。

サイトの公開に関して、または CSS シートに関して何か間違ったことをしていますか?

敬具、

ブレット

4

3 に答える 3

3

最も可能性の高い原因は、パスがサイトのルートに対して相対的であり、ルートにないフォルダーに公開していることです。CSS 内の URL を変更して CSS ファイルに対して相対にするようにし、マークアップ内で URL が動的に変換されるように Url.Content を使用するようにします。

<img src='<%= Url.Content( "~/Content/images/image.png" ) %>' alt="" />
于 2009-06-10T19:56:54.633 に答える
1

ほぼ同じ問題が発生し、URLを思い出しました。IISバージョンでソースを表示すると、CSSファイルなどをポイントするときにURLが正しくないことがわかります。

マスターのすべてのCSSおよびJS呼び出しをヘルパーメソッドに置き換えました。例:

<%= Html.RegisterCSS("site.css") %>
<%= Html.RegisterScript("jquery-1.3.2.min.js") %>

お役に立てれば...


編集:ああ、うん、私は私を「助ける」ためのヘルパーを作成しました。だから、私はヘルパーに次のコードを持っています。

public static string RegisterScript(this System.Web.Mvc.HtmlHelper helper, string scriptFileName)
    {
        string scriptRoot = VirtualPathUtility.ToAbsolute("~/Scripts");
        string scriptFormat = "<script src=\"{0}/{1}\" type=\"text/javascript\"></script>\r\n";
        return string.Format(scriptFormat, scriptRoot, scriptFileName);
    }
    public static string RegisterCSS(this System.Web.Mvc.HtmlHelper helper, string FileName)
    {
        //get the directory where the scripts are
        string Root = VirtualPathUtility.ToAbsolute("~/Content");
        string Format = "<link href=\"{0}/{1}?{2}\" rel=\"stylesheet\" type=\"text/css\" />";
        return string.Format(Format, Root, FileName, DateTime.Now.ToString("hhmmss"));
    }

そして、IE8がIE7モードで表示されていた「落とし穴」がありました。同僚が指摘するまで、これは私に頭痛の種を引き起こしました...私はここにIE8を持っていませんが、それは開発者ツールのセクションにあると思います。

于 2009-06-11T03:32:29.657 に答える
0

これは完全に私のせいです!

ページでタグを使用して表形式のデータを表示しようとしました。これは、Visual Studio 内からプロジェクトを実行しているときは問題なく表示されましたが、サイトを公開すると、ページの CSS が Internet Explorer 7 および 8 のページで歪んで表示されました。 .

しかし、公開された同じビルドを Firefox 3 で表示すると、Web サイトはページ上で正しくレンダリングされているように見えました...! 奇妙な、私は知っています。

Internet Explorer で正しくレンダリングされなかった部分を修正するために CSS を修正しようとしましたが、時間の関係でタグを完全に削除し、代わりにタグを持ち込んでしまい、非常にがっかりしました!

于 2009-06-11T18:51:24.220 に答える