0

这是我的文件夹在 Visual Studio 2010 中的设置方式:

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

我设置了一些引用,因为我希望 Bootstrap 首先出现,forms 和 tigo 必须出现在 main.less 之后。

当我在本地机器上运行这个应用程序时,这是参考:

<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"/>

它在我的机器上运行良好。

但是,当发布到 AppHarbor 时,引用(缩小的)CSS 文件仅包含来自 bootstrap.css 的信息

这是我对 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");
        }
    }
}

这是我的 _Layout.cshtml 文件:

@{
    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>

任何想法为什么它不能正常工作?为什么它抓住了 bootstrap.css 而忘记了其他三个文件。

4

1 回答 1

2

似乎在他们的支持论坛上讨论了类似的问题:

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

总结,项目中没有正确设置less构建文件,设置每个less文件的属性以将构建操作设置为内容,然后将复制到输出目录值设置为始终复制。

于 2012-10-24T16:29:21.127 回答