2015-03-20 18 views
5

Quando pubblico la build di debug su Azure ... tutti i miei file di stile sono raggiungibili.Generazione versione di Azure che non mostra i bundle

Quando pubblicherò il mio rilascio su Azure ... nessuna delle mie fie di stile è raggiungibile.

You do not have permission to view this directory or page. 

Nel mio codice ho bundle in questo modo:

 bundles.Add(new StyleBundle("~/Content/css").Include(
        "~/Content/Packages/Bootstrap/src/bootstrap.css", 
        "~/Content/CSS/site.css", 
        "~/Content/CSS/bootstrap-theme-conflicts.css")); 

A mio avviso rasoio ho questo:

@Styles.Render("~/Content/css") 

mia struttura di cartelle per i contenuti è:

enter image description here

L'URL finale nell'applicazione pubblicata è:

azurewebsites.net/Content/css/?v=i2nuaUMdmGVopZ-yRx75EKwl3vXByH5xgX4-uk0R9oE1 

Se vado direttamente ai file ... cioè:

azurewebsites.net/Content/CSS/Site.css 

Essi ci stanno bene.

utile risorsa:

Bootstrap icons are loaded locally but not when online

risposta

2

Il nome del bundle deve rappresentare una vera e propria directory di file + 1 di livello inferiore ... così ho aggiunto il mio directory in, e poi aggiunse i file di parole alla fine. i file di parole diventano quindi il nome del file!

Così per il mio esempio, ho dovuto dividere il mio bundle up:

 bundles.Add(new StyleBundle("~/bundle/Packages/Bootstrap/src/files").Include(
        "~/Content/Packages/Bootstrap/src/bootstrap.css")); 

     bundles.Add(new StyleBundle("~/bundle/CSS/files").Include(
        "~/Content/CSS/site.css", 
        "~/Content/CSS/bootstrap-theme-conflicts.css")); 

E poi nel mio punto di vista rasoio, ho cambiato la mia a:

@Styles.Render("~/Content/Packages/Bootstrap/src/files") 
@Styles.Render("~/Content/CSS/files") 
+0

Arrivato lì alla fine :) – Jimmyt1988

+1

Se stai facendo '@ Styles.Render (" ~/Content/CSS/files ")' in realtà non stai usando i bundle ... – swiss196

2

stavo affrontando questo problema durante la distribuzione il codice nei siti Web di Azure. ha funzionato quando ho implementato build da visualstudio.com e non è stato quando ho provato a pubblicare la build da Visual Studio 2013. Il problema principale era CSS Minification. Sono totalmente d'accordo con la prima risposta a questa domanda. ma pensato di condividere la soluzione che ha funzionato per me, potrebbe essere che ti aiuterà a risolverlo.

in pratica quando si distribuisce tramite VSO genera file di minificazione per css, js eseguendo kick in system.web.Optimization, ma quando pubblichiamo build da VS 2013 dobbiamo occuparci di quanto segue. bundling-and-minification 1. assicurarsi che la struttura della cartella e la convenzione di denominazione del bundler siano diverse. qualcosa come questo.

bundles.Add(new StyleBundle("~/Content/materialize/mcss").Include(
        "~/Content//materialize/css/materialize.css")); 

2. Aggiungi nella parte inferiore della vostra definizione bundleconfig

public static void RegisterBundles(BundleCollection bundles) 
{ 
    bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
      "~/Scripts/jquery-{version}.js")); 

    // Code removed for clarity. 
    BundleTable.EnableOptimizations = true; 
} 

3. Assicurarsi di aggiungere il debug false nel web.config (quando si inizia a debuging locale VS2013 vi darà un popup dicendo che è necessario assicurarsi di rimetterlo prima di distribuire in prod, che a sua volta spiega molto.

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

Per ulteriori informazioni - why-is-my-css-bundling-not-working-with-a-bin-deployed-mvc4-app

0

Le mie fonti bundle sono nella directory ~/node_modules locali. Questa directory non fa parte del mio progetto, ma dopo aver selezionato "Mostra tutti i file" in Solution Explorer posso vederlo. Quindi è sufficiente fare clic con il pulsante destro del mouse e selezionare l'opzione "Pubblica node_moduli".

Problemi correlati