2

私は Umbraco 5 MVC3 プロジェクトを持っており、あちこちに空白があることを発見しました。調査したところ、Firefox Web 開発者ツールで「生成されたソースを表示」すると、HTML の見た目が非常に悪いことがわかりました。たとえば、doctype 宣言を削除し、メタタグなどを頭の外に移動します。簡略化されたコード:

<!doctype html>
<html class="no-js" lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width">
    <title>@ViewBag.Title</title>
    <link rel="stylesheet" href="@Url.Content("~/Content/Styles/style.css")"/>
</head>
<body id="" class="default">
    <div id="wrapper">
        <header id="banner" class="body">
            <a class="ir logo" href="/"><h1>Christian </h1></a>
            <ul class="share">
                <li id="facebook"><a class="ir" href="http://www.facebook.com/sharer.php?u=@Request.Url.AbsoluteUri">Facebook</a></li>
                <li id="twitter"><a class="ir" href="http://twitter.com/share?text=Christian">Twitter</a></li>
            </ul>
            @Html.Partial("nav")
        </header>
        <section id="content" class="body">
            @RenderBody()
        </section>
    </div>
    <script src="@Url.Content("~/Scripts/plugins.js")"></script>
    <script src="@Url.Content("~/Scripts/script.js")"></script>
</body>
</html>

そして、出力は次のように始まります

<html class="no-js" lang="en"><head></head><body id="" class="default">
4

2 に答える 2

2

サーバーによって生成された HTML を確認する場合は、View source( CTRL+ U) を使用する必要があります。

Generated sourceDOM に基づく HTML の再構築に似ており、たとえば、ページがロードされると、javascript を使用してクライアント側で作成されたノードが含まれます。

于 2012-04-04T18:01:18.380 に答える
0

わかりました、私はそれを解決しました。少し時間がかかりました。Marapet が「生成されたソース」を使用しないことを提案した後、私は一連のブラウザーで通常の「ソースの表示」を試みましたが、すべてのブラウザーで異なる結果が得られました。ソースを検証しようとしたときに、奇妙な苦情がありました。

最初に Doctype を確認せずにスペース以外の文字が見つかりました。予想される<!DOCTYPE html>

要素の頭に、子要素のタイトルの必要なインスタンスがありません。

そして私の個人的なお気に入り

最後のエラーの後、回復できません。それ以上のエラーは無視されます。

doctype に問題があるように見えました。メモ帳を開いてそこに貼り付け、メタデータからコードを「ウォッシュ」します。これは、tinyMCE に貼り付けるときに時々行う方法です。メモ帳でもテキストが奇妙にフォーマットされました。doctype 宣言のフォント サイズが、残りの html よりも小さかった。

それで、メモ帳++でも開いたところ、宣言の前にたくさんの疑問符が表示されました。それらを削除し、Visual Studio にコピーして保存し、すべてが機能するようになりました。

この問題が発生した理由は、github の HTML5 ボイラープレートからスニペットを直接コピーしたためだと思います。

// シャーロック

于 2012-04-05T09:34:56.773 に答える