You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AngularJS HTML5模式页面刷新出现NOT Found错误求助

解决AngularJS路由刷新404的问题

看起来你遇到的是前端路由刷新时的经典服务器404问题,我来一步步帮你解决:

1. 先确认AngularJS路由配置是否正确

先检查你的路由代码是否符合规范,比如类似这样的结构:

var app = angular.module("myApp", ["ngRoute"]);
app.config(function($routeProvider) {
  $routeProvider
  .when("/", {
    templateUrl : "main.html"
  })
  .when("/red", {
    templateUrl : "red.html"
  })
  .otherwise({
    redirectTo: "/"
  });
});

注意templateUrl对应的文件(比如red.html)要确实放在wamp/www/angular/7/目录下,路径别写错。

2. 解决服务器端重写问题(关键)

AngularJS的路由是前端路由,当你刷新angular/7/red时,浏览器会向Apache服务器请求这个路径,但服务器找不到名为red的物理文件或目录,所以返回404。我们需要让Apache把所有路由请求都转发到index.html,交给AngularJS处理。

具体操作:

  • 首先启用Apache的mod_rewrite模块:
    1. 打开WAMP管理器,点击Apache -> Apache Modules,找到rewrite_module并勾选,然后重启WAMP服务。
  • 在项目根目录(wamp/www/angular/7/)下创建.htaccess文件,写入以下内容:
RewriteEngine On
RewriteBase /angular/7/
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /angular/7/index.html [L]

这段规则的作用是:如果请求的不是实际存在的文件或目录,就把请求转发到index.html,让AngularJS的路由系统来处理跳转。

3. 确认base href设置正确

你当前的<base href="/angular/7/">设置是正确的,不用启用注释里的动态生成代码,保持这个静态配置即可,它能确保所有相对路径都基于你的项目根目录。

完成以上步骤后重启WAMP服务,再刷新angular/7/red页面,应该就能正常显示内容了。

内容的提问来源于stack exchange,提问作者John Paul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:21:23