2016-09-03 2 views
1

Я пытался получить путь к локальному файлу изображения, но не могу понять, где расположены относительные пути. Обычно я получаю их из папки wwwroot/images, но когда я пытаюсь загрузить их там, он терпит неудачу.Использование относительного пути изображения в Angular 2 и ASP.NET Core

Где вы относите дороги к Angular 2? Для создания приложения я использовал генератор-aspnetcore-spa.


https://github.com/aspnet/JavaScriptServices
http://blog.stevensanderson.com/2016/05/02/angular2-react-knockout-apps-on-aspnet-core/

Например, в папке ClientApp/компоненты/приложение/app.ts.
Где я могу поместить папку изображений и как я могу назвать ее путь?

+0

Я думаю, что будет проще, если вы предоставите репозиторий github для своего образца проекта и обратитесь к точному файлу компонентов и изображений, которые у вас возникли. –

ответ

1

В Program.cs

public class Program 
{ 
    public static void Main(string[] args) 
    { 
     var host = new WebHostBuilder() 
      .UseKestrel() 
      .UseContentRoot(Directory.GetCurrentDirectory()) 
      .UseIISIntegration() 
      .UseStartup<Startup>() 
      .Build(); 

     host.Run(); 
    } 
} 

в UseContentRoot по умолчанию для текущего каталога с помощью вашего приложения.

Позвонив app.UseStaticFiles(); в классе запуска

public class Startup 
{ 
    ... 
    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. 
    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) 
    { 
     ... 
     app.UseStaticFiles(); 

статические промежуточный файл включен. С настройками по умолчанию он будет обслуживать все файлы в корневой папке сети (<content root>/wwwroot).

Если вы посмотрите на шаблон https://github.com/aspnet/JavaScriptServices Angular2, вы увидите в webpack.config.js, что выход хранится в

output: { 
    path: path.join(__dirname, 'wwwroot', 'dist'), 
    filename: '[name].js', 
    publicPath: '/dist/' 
}, 

так, чтобы <content root>/wwwroot/dist и URL будет

http://<whatever host and port>/dist/<my file> 

URL-адрес не должен содержать ClientApp (уровень корневого содержимого, недоступный для промежуточного программного обеспечения статического файла), но dist (уровень wwwroot).

Поэтому положите свою папку images в ...\wwwroot\images, и URL-адрес изображения будет http://<whatever host and port>/images/<my image file>.

+0

Спасибо, приятель, это действительно помогло мне понять. – John

0

В .Net Ядра, приложение должно знать, чтобы использовать статические файлы, которые вы получили

app.UseStaticFiles(); 

в Startup.cs?

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