ResourceManifest SetDependecies在Orchard模块中不起作用

时间:2016-07-19 05:56:56

标签: css orchardcms

我使用Orchard 1.10.1 CMS。我在代码中创建了一个小部件模块。在ResourceManifest文件中,我添加了此代码

public void BuildManifests(ResourceManifestBuilder builder)
    {
        var manifest = builder.Add();
        manifest.DefineStyle("ShareButtons").SetUrl("ShareButtons.css").SetDependencies("font-awesome.css");
    }

并在模板cshml中添加了此代码

@{    
Style.Require("ShareButtons");
}

问题是在这种情况下,文件font-awesome.css不会进入页面的源文件。

我在这里做错了什么?

当我在模板中使用此代码时,它工作正常,font-awesome.css将出现在页面的源文件中

@{    
Style.Include("font-awesome.css");
Style.Include("ShareButtons.css");
}

ps:在我的模块项目的Style文件夹中,我有ShareButtons.cssfont-awesome.css

1 个答案:

答案 0 :(得分:4)

您的设置错误。您必须自己注册依赖项(就像您的ShareButton样式一样),或者在您的情况下使用 Orchard.Resources 中正确的FontAwesome资源。

所以你的代码看起来像这样:

manifest.DefineStyle("ShareButtons") .SetUrl("ShareButtons.css") .SetDependencies("FontAwesome");

以下是您需要Orchard.Resources作为依赖项的FontAwesome的设置:

namespace Orchard.Resources {
    public class FontAwesome : IResourceManifestProvider {
        public void BuildManifests(ResourceManifestBuilder builder) {
            var manifest = builder.Add();
            manifest.DefineStyle("FontAwesome").SetUrl("font-awesome.min.css", "font-awesome.css").SetVersion("4.4.0").SetCdn("//maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css", "//maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.css", true);
        }
    }
}