2013-04-04 388 views

回答

9

一些依賴於jQuery的腳本將在jQuery加載前被包含。

  • 引導-dropdown.js是jQuery的之前包括
  • 您的自定義JavaScript上線75的jQuery

我建議移動

<script src="/Scripts/bootstrap.js" type="text/javascript"></script> 
<script type="text/javascript" src="http://twitter.github.com/bootstrap/assets/js/bootstrap-dropdown.js"></script> 

和自定義包含的JavaScript從第75行開始,到包含jQuery包之後的頁面底部。或者也可以將你的jQuery包放入你的<head>。這是你的首選項 - 看到這個問題:Should Jquery code go in header or footer?關於那個特定的問題...

你說它在你的本地盒子上,而不是在遠程服務器上 - 如果真的如此,那麼我最好的猜測是,這與捆綁/縮小的工作方式不同,這取決於您處於調試模式還是發佈模式。


UPDATE 基本上,在調試版本,沒有捆綁/縮小時在你的腳本和CSS進行。您在捆綁中引用的每個<link><script>都將作爲單獨的文件包含在內,而不會對其應用轉換。在發佈版本中,捆綁包中的文件被連接在一起成爲一個文件,並將諸如縮小等轉換應用於它們。根據您的評論,爲了獲得本地和已發佈站點的調試行爲,我看到3個選項:

1.在您的發行版本中,將web.config中的編譯調試標誌設置爲true。

<system.web> 
    <compilation debug="true" /> 
    <!-- Lines removed for clarity. --> 
</system.web> 

我不會特別推薦這個,因爲你的發佈版本通常不應該被標記爲正在調試。但這是一個有用的設置,可以快速切換到您的發佈版本,以檢查您的javascript/css在關閉時是否正常工作。

2.在代碼中,關閉捆綁包表中的捆綁優化。

public static void RegisterBundles(BundleCollection bundles) 
{ 
    // other code... 
    BundleTable.EnableOptimizations = false; 
} 

3.不要這麼做。

行爲上的差異是設計上的,也是有意義的 - 在你的本地機器上進行開發時,你可以看到所有單獨的腳本/ css文件,並且以非未定義的形式,這使得調試更容易。發佈後,這些文件將壓縮爲一個壓縮文件,這將減少您網站的加載時間。

我個人推薦選項3,並確保您的樣式/腳本按正確的順序包含在內。

+0

是的我得出了捆綁和縮小問題的結論。它的工作方式取決於在發佈模式還是調試模式下。任何想法如何規避這一點,因爲我認爲他們都是一個一樣的 – 2013-04-05 17:26:15

+0

@PeterEdike請參閱我的更新的答案。 – ngm 2013-04-08 07:57:10

1

在你的頁面你有

<link href="/Content/bootstrapcss" rel="stylesheet"/> 

...有與該文件類型曇花一現,或許這應該是

<link href="/Content/bootstrap.css" rel="stylesheet"/> ? 

而且還有你的Modernizr的文件的路徑問題,檢查路徑是正確的,文件存在:

http://bipscore.com/Scripts/modernizr-1.7.min.js 

可能還有其他問題,但不會傷害到g先將這兩個更正。

祝你好運!

相關問題