我尝试通过Nancy在<div id="calendar"></div>
文件夹中提供静态资源。这是我在Bootstrapper中使用的代码:
assets
我已将文件protected override void ConfigureConventions(NancyConventions nancyConventions)
{
var assets = EmbeddedStaticContentConventionBuilder.AddDirectory(
"/assets", GetType().Assembly);
nancyConventions.StaticContentsConventions.Add(assets);
base.ConfigureConventions(nancyConventions);
}
标记为嵌入式资源。然而,当我启动服务器并访问(project root)/assets/test.css
时,我收到404错误。
应该注意的是,我在OS X Sierra上运行了dotnet core 2.0-preview2-final。
答案 0 :(得分:1)
我在Nancy Slack频道与@inqonsole(Kevin Boon)谈过,他让我尝试了一个在他的机器上工作的项目,这是一个不同的平台。仍然没有工作。可能是Nancy-Embedded中的一个错误(我会在他们的Github上提交它)。他建议使用Kestrel来提供嵌入式文件。这是在Startup类中:
public void Configure(IApplicationBuilder app)
{
app.UseStaticFiles(new StaticFileOptions()
{
FileProvider = new EmbeddedFileProvider(typeof(Startup).Assembly, typeof(Startup).Namespace + ".assets"),
RequestPath = new PathString("/assets")
});
}
您需要在项目中使用NuGet中的包Microsoft.AspNetCore.StaticFiles
和Microsoft.Extensions.FileProviders.Embedded
。
为了完整起见(对于像我这样的其他dotnet核心noob),这里是Program.cs的主要功能:
static void Main(string[] args)
{
IWebHost webHost = new WebHostBuilder()
.UseKestrel()
.UseStartup<Startup>()
.Build();
webHost.Run();
}