Crud到ASP.NET Core时找不到处理程序引用的静态文件

时间:2019-06-21 07:08:13

标签: angular crud

我学习了Angular,并且我在Google App Engine上有了这个Angular 8客户端应用程序。 我在日志中收到此错误

  

找不到处理程序引用的静态文件:   dist / api / BooksXml / title / ruby​​

api/BooksXml是我在Angular服务中的Crud溃败,如下所示:

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 Core。这一切都可以在localhost上运行,但在App引擎上会出现此错误

1 个答案:

答案 0 :(得分:1)

Angular认为您的api/BooksXml/title/ruby是静态文件。有两种解决方案可调用您的后端:使用代理或使用后端URL更改BookItemsUrl

更改BookItemsUrl URL
如果您未启用CORS,则此解决方案可能无法正常工作。

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

OR

使用代理
如果您不了解代理,请检查Angular documentation

  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"
    },
...
  

请注意,如果您编辑代理配置文件,则必须重新启动   ng服务过程,使您的更改生效。

相关问题