2016-11-26 83 views
0

我知道這個主題有很多話題,但我想我已經閱讀了所有內容。由於我仍然無法解決我的問題,我寫了自己的主題。C#軟件包不能在我的服務器上工作

這裏是我的BundleConfig文件:

public static void RegisterBundles(BundleCollection bundles) 
{ 
    var scriptBundle = new ScriptBundle("~/bundles/layoutJS") 
     .Include(
      "~/Scripts/jquery-1.11.2.js" 
      , "~/Scripts/jquery-ui.js" 
      , "~/Scripts/jquery.stellar.js" 
      , "~/Scripts/jquery.velocity.js" 
      , "~/Scripts/jquery.tubular.1.0.custom.js" 
      , "~/Scripts/helper.js" 
      , "~/Scripts/Style/Plugins/popup.js" 
      , "~/Scripts/Style/Plugins/select.js" 
      , "~/Scripts/Style/Plugins/jQuery/cnil.js" 
      , "~/Scripts/Style/layout.js" 
     ); 

    scriptBundle.Orderer = new BundleOrderer(); 
    bundles.Add(scriptBundle); 

    var cssBundle = new StyleBundle("~/bundles/layoutCSS") 
     .Include(
      "~/Content/Style/Font-Awesome/font-awesome.css" 
      , "~/Content/Style/Jquery-ui/jquery-ui.css" 
      , "~/Content/Style/Jquery-ui/jquery-ui.structure.css" 
      , "~/Content/Style/Jquery-ui/jquery-ui.theme.css" 
     ); 
    cssBundle.Orderer = new BundleOrderer(); 
    bundles.Add(cssBundle); 
} 

我沒有這一行:

BundleTable.EnableOptimizations = true; 

因爲我有的web.config該做的伎倆。這裏是我的web.config(localy僅使用)的一部分

<system.web> 
    <compilation targetFramework="4.5.1" debug="true" /> 
</system.web> 
<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true" /> 
</system.webServer> 

這裏是用於我的舞臺服務器web.release.config:在我_layout

<system.web xdt:Transform="Replace"> 
    <compilation targetFramework="4.5.1" debug="false"/> 
</system.web> 

Finaly .cshtml我使我的包這樣的:

@Styles.Render("~/bundles/layoutCSS") 
@Scripts.Render("~/bundles/layoutJS") 

所以我覺得我很好但是......不:(如果我在本地運行我的網站,無論是在調試版本還是發行版本配置中,行爲都可以,我所有的腳本和樣式都是呈現的,並且在Chrome控制檯中沒有錯誤。

但是當我部署我的服務器...它打破: - 首先,我沒有在源代碼 捆綁版本號 - 第二個很明顯,我對每個包404 ...

我的服務器的IIS有什麼需要做的嗎? 我錯過了什麼嗎?

非常感謝您的未來答案!

編輯:註冊軟件包組成:

protected void Application_Start() 
{ 
    Bootstraper.Run(); 

    var unitOfWork = (IUnitOfWork)Bootstraper.GetInstance<IUnitOfWork>(); 
    var cache = (ICacheManager) Bootstraper.GetInstance<ICacheManager>(); 

    MvcHandler.DisableMvcResponseHeader = true; 

    AreaRegistration.RegisterAllAreas(); 
    FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 
    RouteConfig.RegisterRoutes(RouteTable.Routes, unitOfWork.RouteRepository, cache); 
    BundleConfig.RegisterBundles(BundleTable.Bundles); 
} 
+0

你可以顯示「RegisterBundles」和周圍的電話嗎?你有沒有試過在本地發佈你的網站? –

+0

是的,我在最後編輯了我的帖子。 是的,我測試過了......它的工作原理:( –

+0

什麼是您的服務器上的操作系統和IIS版本?什麼版本的MVC? –

回答

0

Aaaaaaalright,它實際上是一切ok。唯一的問題是在我的腳本文件夾中有一個空目錄,所以它沒有被部署......不幸的是,我有一個規則,這個目錄在製作一些bundle的模式中。它打破了所有其他捆綁。

感謝@Vivien Chevallier爲您解答。

0

更新你的web.config,改變<system.webServer>部分爲以下幾點:

<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"> 
     <remove name="BundleModule" /> 
     <add name="BundleModule" type="System.Web.Optimization.BundleModule" /> 
    </modules> 
</system.webServer> 
+0

已經嘗試過並且現在重試...但是沒有,我甚至做了一次iisreset,但是......只是......沒有更多。 –

相關問題