0

私は非常に混乱しています。ASP.NETMVC4WebサイトのCSSの作業を始めたばかりで、何が起こっているのか完全には理解していません。

現在、私のモバイルレイアウトは機能しますが、それを変更すると、次々と奇妙な効果が発生します。(たとえば、フォームは常に表示されているajax-loader.gifに表示されません。)

私は以下を持っています.Layout.Mobile.cshtml

   @Styles.Render("~/Content/Mobile/css", "~/Content/jquerymobile/css")  
    <link rel="stylesheet" href="~/Content/Mobile/css/jquery.mobile-1.2.0.min.css" /> 
    <link rel="stylesheet" href="~/Content/Mobile/css/jquery.mobile-1.2.0.css" /> 
    <link rel="stylesheet" href="~/Content/Mobile/css/jquery.mobile.theme-1.2.0.css" /> 


    @Scripts.Render("~/bundles/jquery", "~/bundles/jquerymobile") 
    <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
    <script src="http://code.jquery.com/mobile/latest/jquery.mobile.min.js"></script>

BundleMobileConfig.csApp_startを次のように変更しました。

 //       bundles.Add(new StyleBundle("~/Content/Mobile/css")
 //           .Include("~/Content/Site.Mobile.css"));
 //kludge is the above wrong...and the following needed??
         bundles.Add(new StyleBundle("~/Content/Mobile/css")
            .Include("~/Content/Site.Mobile.css",
                     "~/Content/Mobile/css/"));

これがこのバンドルのデフォルトではない理由がわかりませんか?

これが私の質問/問題です:

  1. スタイルシートに注意する場合は、3つの明示的なリンクを含める必要はなく、バンドルから取得する必要があります。しかし、それらのいずれかを削除すると、サイトが壊れます。

    • ~/Content/Mobile/css変更されたバンドルがこれらのcssファイルをプルアップしないのはなぜですか?
  2. スクリプトファイルについては、code.jquery.comを確認しましたが、なぜこれらが必要なのかわかりません。私のローカルコードは最新です(つまり、jquery-1.9.1.jsとjquery.mobile-1.2.0.js

    • バージョン1.9.1は1.7.1を問題なく置き換えることができると思いますが、そうではありません。

    • jquery.mobile.min.jsは、リリースバージョンとデバッグバージョンを切り替えるだけで、問題は発生しませんが、発生します。

ファイアバグを使用してロードされているファイルを表示しましたが、明示的なインクルードなしでバンドルのレンダリングのみを使用すると、ファイルが含まれていません。なぜですか?バンドルについて読んだことがありますが、バンドルされたファイルを取得する必要があるようです。

CSSとバンドルのデバッグ方法を学ぶことができるように、誰かが何が起こっているのかを明らかにし、チュートリアルを教えてもらえますか?私はいくつか読んだことがあり、firebugは非常に便利だと思いますが、次にどこを見ればよいかわかりません。

4

2 に答える 2

2

バンドルコードをこれに置き換えてみてください。

bundles.Add(new StyleBundle("~/Content/Mobile/css")
        .Include("~/Content/Site.Mobile.css",
                 "~/Content/Mobile/jquery.mobile*"));

これにより、明示的にロードせずにファイルをロードする必要があります。

于 2013-03-26T08:32:42.693 に答える
0

あなたの権利これはうまくいきました!ありがとう....

奇妙なことに、次のことが機能しませんでした。

bundles.Add(new StyleBundle("~/Content/Mobile/css")
    .Include("~/Content/Site.Mobile.css",
             "~/Content/Mobile/css/jquery.mobile-{version}.js",
             "~/Content/Mobile/css/jquery.mobile.theme-{version}.js",
             "~/Content/Mobile/css/jquery.mobile.structure-{version}.js",
             "~/Content/Mobile/css/"));

私はあなたの例がうまくいく理由を理解しています...しかし私のものがうまくいかない理由を理解していません...バージョンタグが私が期待するように機能しない場合を除いて....

また、jquery 1.9.1は1.7.1とは大きく異なることがわかりました。これについては、次のことを行う必要がありました。

@Scripts.Render("~/bundles/jquery")  
@Scripts.Render("~/bundles/jquerymobile")  
<script src="~/Scripts/jquery-1.9.1.js"></script>
<script src="~/Scripts/jquery-migrate-1.1.1.js"></script> 
<script src="~/Scripts/jquery.mobile-1.2.0.js"></script>

これは機能します....あなたの例を使用して、これも含めるワイルドカードパターンを理解します。

于 2013-03-26T11:46:54.337 に答える