Cassette bundle not linking every stylesheet in the folder, only 1

1.4k views Asked by At

Here's how my folder is set up in Visual Studio 2010:

[solution]/Public
              /assets
                  /stylesheets
                      bootstrap.css
                      forms.less
                      main.less
                      tigo.less

I've set up some references because I want Bootstrap to appear first and forms and tigo have to appear after main.less.

When I run this application on my local machine, this is the reference:

<link href="/cassette.axd/asset/Public/assets/stylesheets/bootstrap.css?Fr-zb2zZgNbHEFtP2LHSlWzPcTc=" type="text/css" rel="stylesheet"/>
<link href="/cassette.axd/asset/Public/assets/stylesheets/main.less?3YJKuT131pux5i9cKZkQeAO_qLQ=" type="text/css" rel="stylesheet"/>
<link href="/cassette.axd/asset/Public/assets/stylesheets/forms.less?3j_M5YCMRn_e3APdf8XOLJrN9s0=" type="text/css" rel="stylesheet"/>
<link href="/cassette.axd/asset/Public/assets/stylesheets/tigo.less?L6L9pztQ4BxBKmO_Q3XHBJx9L8Q=" type="text/css" rel="stylesheet"/>

It works fine on my machine.

However when publishing to AppHarbor, the references (minified) CSS file only contains the information from bootstrap.css

Here is my configuration for Cassette:

namespace Foo.WebUI
{
    /// <summary>
    /// Configures the Cassette asset bundles for the web application.
    /// </summary>
    public class CassetteBundleConfiguration : IConfiguration<BundleCollection>
    {
        public void Configure(BundleCollection bundles)
        {
            bundles.Add<StylesheetBundle>("Public/assets/stylesheets");
            bundles.Add<ScriptBundle>("Public/assets/javascripts");
        }
    }
}

And here is my _Layout.cshtml file:

@{
    Bundles.Reference("Public/assets/stylesheets");
    Bundles.Reference("Public/assets/javascripts");
}
<!DOCTYPE html>
<html>
<head>
    <title>@ViewBag.Title</title>

    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
    <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.8.23/jquery-ui.min.js"></script>
    <link rel="Stylesheet" href="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.10/themes/blitzer/jquery-ui.css" />

    @Bundles.RenderStylesheets()
</head>

Any ideas why it's not working correctly? Why is it grabbing bootstrap.css but forgetting about the other three files.

1

There are 1 answers

2
mattmanser On BEST ANSWER

Seems like a similar issue discussed on their support forums:

http://support.appharbor.com/discussions/problems/3876-appharbor-does-not-serve-my-less-files

Summary, the less build files aren't setup in the project properly, set the properties of each less file to set the Build Action to Content and then set the Copy To Output DIrectory value to Copy always.