在Apache服务器中,angular 4部署包刷新错误服务器

时间:2017-11-22 06:14:51

标签: angular apache

目前,我的角度应用在“http://localhost”根或索引页面中运行apache服务器,但刷新内页“http://localhost/dms-data/summary-of-findings”后显示浏览器

未找到

在此服务器上找不到请求的网址/ dms-data / summary-of-findings。

本地主机端口80的Apache / 2.4.9(Win32)PHP / 5.5.12服务器

我的浏览器中显示此消息 我的index.html基础href是

<base href="http://localhost/">

2 个答案:

答案 0 :(得分:1)

这是因为您使用HTML pushState作为位置策略,因此当您从浏览器刷新时,浏览器会将您的路由页面的请求发送到apache服务器。由于apache服务器显示404错误,因此不知道此内部路由是否有角度。

有两种可能的解决方案:

  1. 将后备页面定义为index.html :您需要在服务器中对此进行配置,因为发送到您的服务器的任何未知页面请求(您的路由请求)都将重定向到你的主要HTML。 index.html(用于配置服务器的See this link

  2. 使用基于哈希的位置策略:使用此功能,您将不需要任何服务器配置。此外,您的路由页面网址将类似于localhost /#/ route1。如果你正在建立一个网站,那么它也可能妨碍SEO。 (See this link了解更多信息)

答案 1 :(得分:0)

您可以在项目目录中创建 .htaccess 文件,并将此代码放入.htaccess文件中

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^index\.html$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.html [L]
</IfModule>

您可以检查在apache服务器Deploy step

上部署角度构建的所有步骤