Aurelia .NET Core - 找不到本地文件

时间:2017-02-09 21:40:51

标签: aurelia aurelia-cli aurelia-framework

我在Aurelia CLI设置的.NET Core中托管了Aurelia应用程序。

我在app.html文件中使用src/assets/icons/font-awesome添加了Font-Awesome CSS文件。 一切都按照应有的方式加载但是当我尝试引用位​​于wwwwroot文件夹中的Font-Awesome fonts 时,(我自己将它们复制到那里),我得到标准文件未找到控制台错误

如果我将Font-Awesome字体移动到getDayInMonth,一切正常,图标会显示在我的页面上。我的猜测是因为我通过.NET Core(wwwroot)托管我的应用程序,我无法访问src文件夹下的静态文件?

结构:

Android documentation

控制台错误:

enter image description here

为什么会这样?我可以以某种方式解决这个问题,还是我被迫将我的Font-Awesome字体存储在wwwroot中?

下次当我使用Aurelia CLI启动一个新的Aurelia项目时,如果我在wwwroot中安装Aurelia应用程序而不是root中的单独src文件夹会更好吗?

1 个答案:

答案 0 :(得分:2)

默认情况下,.NET Core Web主机提供wwwroot文件夹中的静态文件。 您的Program.cs文件

中有一条特殊说明
public static void Main(string[] args)
{
    var host = new WebHostBuilder()
        .UseContentRoot(Directory.GetCurrentDirectory()) //serve static from web root (wwwroot) folder
}

并在Startup.cs中的某个位置启用了静态文件中间件: app.UseStaticFiles(); //uses web root (wwwroot folder) by default

要从不同位置提供您想要再次调用具有不同配置的中间件

的文件
public void Configure(IApplicationBuilder app)
{
    app.UseStaticFiles(); // For the wwwroot folder

    app.UseStaticFiles(new StaticFileOptions()
    {
        FileProvider = new PhysicalFileProvider(
            Path.Combine(Directory.GetCurrentDirectory(), "src")),
        RequestPath = new PathString("/src")
    });

但我不会推荐。好的做法是分别存储代码,资产和配置,并将它们作为静态文件捆绑到wwwroot目录(使用任务管理器,webpack或仅复制生产)

More info about static files management in .NET Core