Статический файл, на который ссылается обработчик, не найден при переходе с Crud на ASP.NET Core - PullRequest
0 голосов
/ 21 июня 2019

Я изучаю Angular, и у меня есть это клиентское приложение Angular 8 на движке приложений Google. Я получаю эту ошибку в журнале

Статический файл, на который ссылается обработчик, не найден: расстояние / апи / BooksXml / название / рубин

api/BooksXml - это мой маршрут Crud в сервисе Angular, подобный этому:

private BookItemsUrl = 'api/BooksXml';  // URL to web api

/title - это классификатор Crud, подобный этому

  /** GET book by title from server. */
  getBookByTitle(title: string): Observable<BookItem[]> {
    const url = `${this.BookItemsUrl}/title/${title}`;
    return this.http.get<BookItem[]>(url);
  }

/ruby - это название книги, которую я ищу.

Бэкэнд - это ядро ​​ASP.NET. Это все работает на локальном хосте, но в движке приложения я получаю эту ошибку

1 Ответ

1 голос
/ 21 июня 2019

Angular думает, что ваш api/BooksXml/title/ruby - статический файл. Существует 2 решения для вызова вашего бэкэнда: используйте прокси или измените свой BookItemsUrl с URL бэкенда.

Изменить BookItemsUrl URL
Это решение может не работать, если вы не включите CORS.

private BookItemsUrl = 'http://<server_name>:<port_number>/api/BooksXml'

OR

Использовать прокси
Посмотрите документацию Angular , если вы не знаете о прокси.

  1. Создать файл src/proxy.config.json:
{
  "/api": {
    "target": "http://<server_name>:<port_number>",
    "secure": false
  }
}
  1. В angular.json добавить параметр proxyConfig:
...
"architect": {
  "serve": {
    "builder": "@angular-devkit/build-angular:dev-server",
    "options": {
      "browserTarget": "your-application-name:build",
      "proxyConfig": "src/proxy.conf.json"
    },
...

Обратите внимание: если вы редактируете файл конфигурации прокси, вы должны перезапустить Процесс подачи заявки, чтобы ваши изменения вступили в силу.

...