未正确调用带有端口的Angular 6 API URL。API端口在角度prod模式下消失
我有一个API URL,在我的angular应用程序中设置为全局变量:未正确调用带有端口的Angular 6 API URL。API端口在角度prod模式下消失,angular,nginx,amazon-ec2,angular6,Angular,Nginx,Amazon Ec2,Angular6,我有一个API URL,在我的angular应用程序中设置为全局变量: API_URL: 'http://52.109.53.23:3001' 我所有的API请求都通过这个URL,它在开发模式ng s下运行良好,但当我编译它用于生产ng build-prod并部署到我的ubunut nginx web服务器上时,请求失败,它们是错误的,API端口号丢失:这是控制台输出: Object { headers: {…}, status: 404, statusText: "Not Found", u
API_URL: 'http://52.109.53.23:3001'
我所有的API请求都通过这个URL,它在开发模式ng s下运行良好,但当我编译它用于生产ng build-prod并部署到我的ubunut nginx web服务器上时,请求失败,它们是错误的,API端口号丢失:这是控制台输出:
Object { headers: {…}, status: 404, statusText: "Not Found", url: "http://52.109.53.23/auth/sign_in"
如果您注意到端口已消失,如何解决此问题?在您的项目中,您应该有一个文件夹“environments”,其中包含两个标准文件:environment和environment-prod.ts。在这两种情况下,您可以添加任何您需要的内容
export const environment = {
server : 'http://<ip>:<port>'
}
以后你可以引用它
import { environment } from '<wherever it is>';
然后通过environment.server引用它
当您执行产品构建环境时,根据官方文档,产品将用于有利于环境
ng build --prod
-prod meta标志包含以下构建优化功能
提前AOT编译:预编译角度组件
模板。
生产模式:部署生产环境,使
生产方式。
捆绑:将许多应用程序和库文件连接到一个
几捆。
缩小:删除多余的空白、注释和可选内容
代币。Uglification:重写代码以使用简短、神秘的变量
和函数名
死代码消除:删除未引用的模块和大量未使用的模块
密码
环境配置在v6中的angular cli配置文件angular-cli.json或angular.json中设置,默认情况下,该文件有两个选项:dev和prod
"environments": {
"dev": "environments/environment.ts",
"prod": "environments/environment.prod.ts"
}
对于v6+,angular.json环境在配置部分中配置
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
如果两个环境使用相同的url,则应在两个文件中定义该url
src/environments/environment.ts
src/environments/environment.prod.ts
要使用环境变量,只需按如下方式导入环境对象:
import {environment} from '../../environments/environment';
....
apiUrl = environment.API_URL;
....
是否通过环境类型设置检索此值?很可能您只在environment.ts中有变量,而在environment-prod.ts中没有变量,或者只是忘记了prod中的端口version@jcuypers不,你能告诉我怎么做吗。我只是创建了一个类global.ts,将API_URL作为cons,并将其注入我创建的所有服务中。它在dev中运行良好,但是当我编译时,请求是在没有端口号的情况下发出的?
export const environment = {
production: true,
API_URL: 'http://52.109.53.23:3001'
};
import {environment} from '../../environments/environment';
....
apiUrl = environment.API_URL;
....