2015-12-23 90 views
1

我創建了一個新的MVC6空項目。新增bower.json和jQuery依賴MVC 6參考空模板中的Jquery

bower.json

... 
    "dependencies": { 
    "jquery": "~2.1.4" 

它沒有正確地引進到

wwwroot\lib\jquery 

然後,我引用的是我的_layout.cshtml頁面上

<script src="~/lib/jquery/dist/jquery.js"></script> 

但是Intellisense的路徑下劃線。當在瀏覽器中打開>查看源代碼並單擊路徑時,它將顯示一個空白頁面,就好像腳本未找到一樣。

此外,當我瀏覽到:http://localhost:57405/lib/jquery/dist/jquery.js,它沒有找到它

我在做什麼錯?我需要app.UseStaticFiles();在Startup.cs中? 感謝

編輯: enter image description here

當我將鼠標懸停在<script>標籤我得到「找不到路徑」提示

回答

1

您的代碼應該只要罰款,你有文件的jquery.js工作,在該位置。

而且你需要確保你叫Configure()法(內Startup.cs)

public void Configure(IApplicationBuilder app, IHostingEnvironment env, 
                  ILoggerFactory loggerFactory) 
{ 
    //Other configuration goes here 
    app.UseStaticFiles(); // This enables static file serving from the app. 
    app.UseMvc(routes => 
     { 
      routes.MapRoute(
       name: "default", 
       template: "{controller=Home}/{action=Index}/{id?}"); 
     }); 
} 

UseStaticFiles()擴展方法,使靜態文件服務,包括JS文件,CSS文件等。

UseStaticFiles()方法

您可以考慮使用environment標籤幫助程序將腳本包含在您的頁面中以用於不同的配置/環境。

您不需要使用環境標籤助手。您可以直接將腳本標籤放入佈局文件中。但環境幫手允許我們有條件地基於環境呈現腳本。 (精縮捆綁版VS聯合國所有精縮版)

<environment names="Development"> 
    <script src="~/lib/jquery/dist/jquery.js"></script>  
</environment> 
<environment names="Staging,Production"> 
    <script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-2.1.4.min.js" 
      asp-fallback-src="~/lib/jquery/dist/jquery.min.js" 
      asp-fallback-test="window.jQuery"> 
    </script> 
</environment> 

如果你希望在你的自定義腳本這樣,看看this answer

+0

雖然這是非常有用的東西,它不解決問題引用靜態內容文件。出於某種原因,wwwroot \ lib \中的任何文件引用都無法從視圖中訪問。 – ShaneKm

+0

我需要Startup.cs中的任何東西來告訴它從wwwroot \ lib提供文件嗎? – ShaneKm

+0

是的。你需要調用'UseStaticFiles()'方法。看到我更新的答案。 – Shyju