2017-02-09 24 views
1

У меня есть приложение Aurelia в .NET Core, созданное Aurelia CLI.Aurelia .NET Core - Локальные файлы не найдены

В файле app.html с помощью файла require был добавлен файл Font-Awesome CSS. Все загружается как следует, но когда я пытаюсь ссылаться на Font-Awesome шрифты, расположенный в папке src/assets/icons/font-awesome, (я сам их скопировал), я получаю стандартный файл, не найденный консольной ошибкой.

Если я переведу свой шрифт Font-Awesome на wwwwroot, все будет работать, и значки появятся на моей странице. Я предполагаю, что, поскольку я размещаю свое приложение через .NET Core, (wwwroot), я не могу получить доступ к статическим файлам в папке src?

Состав:

enter image description here

Консоль ошибка:

enter image description here

Почему это так? Могу ли я как-то обойти эту проблему, или я вынужден хранить свои шрифты Font-Awesome в wwwroot?

В следующий раз, когда я запустил новый проект Aurelia с использованием Aurelia CLI, было бы лучше, если бы я установил приложение Aurelia внутри wwwroot вместо отдельной папки src в корне?

+0

Wwwroot понимается как «общественное» папку для активов. Просто переместите их там, нет причин помещать что-то в 'src', который не является файлом, который каким-то образом нуждается в компиляции или создании. Еще лучше загрузите их из CDN. –

ответ

2

По умолчанию веб-хост .NET Core обслуживает статические файлы из папки 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

+0

Я пробовал вашу собственную конфигурацию, но все, что я получил на порту: 5000 - это пустая страница. Что может быть причиной? Что делать, если я разрабатываю порт: 9000, (предоставляется aurelia), а не порт: 5000 (предоставляется .NET)? Тогда это решение не помогло бы? Без вашей настраиваемой конфигурации корневой каталог по умолчанию не должен быть src, если я использую порт: 9000? Тогда я смогу загрузить шрифты без установки другого корня? – Reft

+0

Я получил его сейчас на порт: 5000, однако статические файлы по-прежнему не найдены на порту: 9000. Вы знаете, что исправить? У меня нет браузера на порту: 5000, поэтому я хотел бы разработать приложение на порту: 9000.Спасибо – Reft

+0

Если я следую вашему предложению и не меняю корневую папку, я должен иметь одну папку с ресурсами в src, содержащую мои меньше файлов и т. Д., И одну папку с ресурсами в wwwroot, содержащую мой шрифт, удивительные шрифты и т. Д.? (I can not reference stylesheets в wwwroot) – Reft

 Смежные вопросы

  • Нет связанных вопросов^_^