Angular,即使设置了base-href,项目也没有在生产中运行

Posted

技术标签:

【中文标题】Angular,即使设置了base-href,项目也没有在生产中运行【英文标题】:Angular, project not running in production even with base-href set 【发布时间】:2020-11-21 03:52:00 【问题描述】:

首先,对于 *** 标准来说,这个问题太模糊了,因为我可能没有具体的代码可以展示。这是一个笼统的问题,希望有人能帮我找出问题所在。

我已经看到需要一个 base-href 来告诉项目它在服务器中的路由。例如,如果我想部署一个名为“project”的项目,base-href 应该是 /project/,我将从 127.0.0.1:port/project/ 访问它。

所以,我有几个月以来一直在从事的这个项目,我按照上面的描述做了,但是这个项目没有运行。我只看到网站图标。为了排除问题,我开始了一个全新的项目,并按照相同的步骤将其构建到生产环境中,而这一次,全新的运行完美无缺。所以这意味着不是构建问题或服务器问题,但可能我的项目必须有一些东西阻止它正常运行。

我想知道你们中是否有人遇到过类似的情况,可以指导我找出问题所在。经过几个月的工作,我无法进行生产,这真是令人沮丧。任何帮助将不胜感激。

angular.json 我有:

"baseHref": "/project/",
"deployUrl": "/project/",

在 xammp 中,我将 dist 中创建的文件夹放在 htdocs 中,并尝试从 127.0.0.1:80/project/ 访问它(端口 80 对服务器 ip 开放)。 我使用以下命令部署项目:

ng build --base-href "/project/" --prod

如果您需要一些额外的代码来检查,请告诉我。

【问题讨论】:

如果你不提供你的代码或至少一个你如何设置的例子,例如路由模块和必要的模块,你会得到很多反对票,直到它关闭。 现在将使用此信息更新它,谢谢。 您的项目是否位于“项目”目录中?如果没有尝试“/” 【参考方案1】:

按照Angular 2 router no base href set 并尝试不同的选项,我的应用程序可以在 app.module.ts 的提供程序中使用以下行运行:

provide: APP_BASE_HREF, useValue : '/project' 

添加匹配导入后:

import APP_BASE_HREF from '@angular/common';

我不太明白这个项目有什么不同需要这条线才能运行,但它正在运行,所以这个问题已经关闭(暂时......)。

【讨论】:

以上是关于Angular,即使设置了base-href,项目也没有在生产中运行的主要内容,如果未能解决你的问题,请参考以下文章

使用 --base-href 构建 Angular 库

带有自定义 --base-href 和 Nginx 路由的 Angular SPA

Angular 4 ng 构建 base-href 重复子目录

Angular 8:运行 ng build --prod --base-href './project1' 时访问资产文件夹

在 ng build angular 中运行严格编译

浅析 Angular CLI 发布路径的配置项