Angular ui-router 按刷新会导致 404 错误

2023-12-09

好的,我知道这是一个开放式问题,但是 -

我正在使用 AngularJS 1.4.x 和 ui-router 运行一个应用程序。在大多数情况下,一切都正常并符合预期。我的各个页面使用 ui-sref 进行导航,页面按预期显示,并且显示的 URL 看起来正确。但是,如果我在任何页面上刷新页面 (F5),就会导致出现 404 错误。并且输入 URL 不再有效。

可能涉及到的事情:

  • 我打开了$locationProvider.html5Mode(true) flag
  • I use

    $rootScope.$on('$stateChangeStart', 函数 (事件, toState, 到参数)

    管理页面访问(身份验证)

  • <base href="/">是 在我的 index.html 中,因为没有它 html5Mode() 将无法工作

问:当您刷新页面时,实际发生了什么?

答:您正在通过浏览器向服务器发送 HTTP 请求。GET /whatever。因此,服务器需要为此请求设置一条路由来响应index.html。目前,您正在获得404因为您的服务器没有与请求匹配的路由GET /whatever.

Q: Why?

答:当您通过浏览器(而不是通过 AJAX)发出请求时,您的浏览器将尝试向您显示响应。前任。如果响应是 JSON,它会显示 JSON。如果它是一个字符串,它会显示一个字符串。如果它是一个 html 页面,它会向您显示这一点。您不能只发送回任何路线的模板,因为如果您这样做,它只会在没有其他上下文的情况下渲染该模板。你需要index.html要加载角度,运行控制器,将模板放入其中ui-view容器等

(将会发生的是index.html将被发送回来,UI Router将检查路由,发出请求templateUrl,运行控制器,然后渲染它。)

Q: How?

答:这取决于 a) 您使用的服务器类型和 b) 您的文件结构。您可能需要在路由文件的末尾提供某种捕获所有路由的服务index.html。这就是我使用 Node/Express 的方法:

app.get('/*', function(req, res) {
  var url = path.resolve(__dirname + '/../client/index.html');
  res.sendFile(url, null, function(err) {
    if (err) res.status(500).send(err);
    else res.status(200).end();
  });
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular ui-router 按刷新会导致 404 错误 的相关文章

  • $routeProvider - 为所有路由注入相同的依赖项

    以下代码 routeProvider when page1 控制器 MyController 解析 策略 StrategyOne 在实例化控制器 MyController 之前等待策略依赖关系得到解决 在我的应用程序中 我有一个返回承诺的函
  • Angularjs ui 路由器。如何重定向到登录页面

    我有4个状态 仪表板 仪表板 main 仪表板 次要 login 仪表板是抽象的 它是 minor 和 main 状态的父状态 下面是我的代码 state dashboard url dashboard abstract true temp
  • 是否可以为 $httpBackend 响应设置通配符?

    假设我在 AngularJS 中有以下测试代码 var someURL var dummyJSON httpBackend whenGET someURL respond dummyJSON 有没有一种方法可以使其成为一组 URL 而不仅仅
  • Angularjs - $http 成功与当时

    我想问一下这个方法有什么区别 我关心的是 then 和 success function 和 error 之间的区别 谢谢 Simple GET request example http method GET url someUrl the
  • 角度2:语法错误:意外的标记<(...)

    我知道 这个问题已经被问过 但我找不到适合我的特定情况的解决方案 我无法理解错误的真正原因 我有一个运行良好的 angularjs2 应用程序 现在我想导入marked图书馆 我做了什么 npm install marked tsd ins
  • Angular UI Grid - 将图像导出为 pdf

    我想将图像添加到 pdf 的标题中 我正在尝试添加已转换为 base64 的图像以导出 Pdf 标题 scope gmGrid exporterPdfHeader margin 30 5 30 15 table widths body MC
  • Angular 资源测试:$httpBackend.flush() 导致意外请求

    我想测试 angularjs 资源 use strict AddressService provides functionality to use address resource in easy way This is an exampl
  • cookie 未在跨域上设置 - AngularJS 和 NodeJS/Express

    跨域请求时未设置 cookie 我的服务器在 localhost 8000 中运行 客户端在 localhost 9000 中运行 服务器nodejs express上的cors设置是 app use function req res ne
  • 将输入包装在角度指令中

    我的想法是将输入包装到自定义指令中 以保证整个网站的外观和行为一致 我还想包装 bootstrap ui 的日期选择器和下拉菜单 此外 该指令应该处理验证并显示工具提示 HTML 应该看起来像这样
  • 从不同的控制器修改 $rootscope 属性

    在我的 rootscope 中我有一个visible控制 div 可见性的属性 app run function rootScope rootScope visible false HTML 示例 section section
  • Angularjs 中的动态表单名称属性

    当动态创建 inputName 时 人们将如何使用 formName inputName valid
  • Spring 和 Angular JS

    我正在使用 Spring 和 Angular JS 开发一个应用程序 但我不知道我所做的是否正确 在同一个 Maven 项目中 我做了 一个用户类 然后我创建了一个 RestController 在其中创建了我的 webservice 在
  • 识别 ASP.NET MVC 代码中的 Angular js AJAX 调用

    我正在使用 ASP NET MVC 和 AngularJS 开发一个示例应用程序 在服务器端代码中 我编写了一个Action过滤器属性 其中我需要检查请求是普通请求 浏览器 还是AJAX请求 public override void OnA
  • 路由和干净路径(无主题标签)在 angularJS 中不起作用

    伙计们 这让我发疯了 我为此奋斗了几个小时 却找不到解决方案 我知道为了从 URL 路径中清除主题标签 我需要使用 locationProvider html5Mode true 但由于某种原因 这对我来说效果不佳 我使用 tomcat 7
  • 表格的 元素中是否允许使用 ng-model?

    表格元素内是否允许使用 ng model 如果我更改特定列 即视图 角度会自动更新模型吗 如果您要使用 HTML 直接编辑表格单元格contenteditable属性 ng model 不会自动工作 因为默认情况下它仅适用于表单元素 有可能
  • AngularJS 与 Apache Tiles

    我在我的项目中使用 Spring MVC 和 AngularJS AngularJs 可以吗 routing和 ngView 被用来代替or与阿帕奇瓷砖框架 据我所知 使用 routing 和 ngView 我们创建模板并在单页应用程序中重
  • 在 AngularJs 中设置动态作用域变量 -scope.

    我有一根绳子 是从routeParam或指令属性或其他什么 我想基于此在范围上创建一个变量 所以 scope
  • 搜索引擎如何处理 AngularJS 应用程序?

    我发现 AngularJS 应用程序在搜索引擎和 SEO 方面存在两个问题 1 自定义标签会发生什么 搜索引擎会忽略这些标签中的全部内容吗 即假设我有
  • 如何在 AngularJS 中存储当前用户上下文?

    我有一个 AuthService 它登录用户 它返回一个用户 json 对象 我想要做的是设置该对象并让所有更改反映在应用程序中 登录 注销状态 而无需刷新页面 我如何使用 AngularJS 来完成这个任务 实现此目的最简单的方法是使用服
  • ag-Grid 中的行格式

    我们需要有条件地将行文本设置为粗体 目前它仅适用于单个单元格 但我们需要在所有列单元格上应用文本粗体 应用格式设置后 isBold 列必须隐藏 删除 此列仅用于格式化 如何应用文本缩进 10px isBold 列包含真实值的第一列的 有可能

随机推荐

  • WebAPI OData 日期时间序列化

    我需要更改 OData 序列化的方式DateTime and DateTimeOffset 目前我们正在使用Microsoft AspNet OData 5 9 0 默认情况下 格式最有可能是yyyy MM dd T HH mm ss FF
  • 在 Objective-C 中调用 C 函数从 Nib 唤醒

    我必须在 Objective C 类中实现一个 C 函数 该函数通常会被调用int main 在它自己的文件中 由于我不熟悉拼接代码 我需要知道如何在awakefromnib or applicationDidFinishLaunching
  • C++11 变量初始化和声明

    C 11 带来了一种初始化和声明变量的新方法 Original int c derived 0 C 11 int modern 0 每种方法有哪些优缺点 如果有的话 为什么要实施新方法 编译器做了什么不同的事情吗 你错了 int moder
  • 将 MBF Single 和 Double 转换为 IEEE

    Follow Up available There s a follow up with further details see Convert MBF to IEEE At thisWiki 页面上有一些不同代码示例的链接 用于在 C C
  • Sequelize:多个 where 子句

    我有以下表格 文章 用户 标签 关注者 订阅 文章属于用户 fk 文章表中的 userId 文章可以有多个标签 这是生成的 tagarticle 表 这是关注者表 以及订阅表 一个用户可以关注多个用户并订阅一个国家 payId 一个标签或一
  • mySQL 错误 1040:连接过多

    如何修复这些 SQL 错误 1040 连接过多 即使我尝试把 max user connection 500 仍然是 连接太多 MySQL 错误 1040 连接过多 这基本上表明 MySQL 同时处理最大连接数 默认情况下它处理100同时连
  • 如何更改 showModalBottomSheet 的大小? [扑]

    我正在使用一个showModalBottomSheet我想更改小部件的大小 使其占据大约 75 的屏幕 默认情况下它似乎占据 50 我尝试按照文档进行操作 但找不到尺寸属性 有人可以建议我一种更改此小部件大小的方法吗 目前看起来像这样 Co
  • 函数的多次返回

    是否可以有一个具有两个返回值的函数 如下所示 function test testvar Do something return var1 return var2 如果是这样 我如何才能分别获得每笔回报 从技术上讲 您不能返回多个值 但是
  • ASP.NET MVC 3 将 KeyValuePair 类型的用户控件绑定到 ViewModel

    我创建了一个继承 KeyValuePair 的特殊用户控件 在我的 ViewModel 中 有一个名为 Lookup 的属性 UIHint Lookup public KeyValuePair
  • 在 Mybatis 属性文件中使用环境变量

    我正在使用 mybatis 连接到数据库 并且我已在外部属性文件中存储了一些架构信息 我已将此属性文件保存在磁盘上的某个位置 并在我的config xml像下面这样 在配置 xml中
  • 从别名命名空间中的字符串名称创建新的类实例

    我见过这样的问题this and this 但两者都没有解决如何从字符串名称创建类实例 如果您已经有命名空间并且该类位于别名命名空间中
  • 获取我的网站访问者的 Facebook 用户 ID(无需身份验证)

    有没有办法使用 FB API 获取我网站访问者的 Facebook 用户 ID 而不需要要求他们验证我的 Facebook 应用程序 我所需要的只是一些与 facebook 相关的标识符 它甚至不必是用户 ID 而是可以将用户与 faceb
  • 删除 GAS 中无效的命名范围

    我在工作表中定义了一些命名范围 稍后将其删除 之后 范围保留在侧边栏中 数据 gt 命名范围 范围为 REF 我想删除它们 因为我不想让它们累积 他们没有被列在SpreadsheetApp GetActiveSpreadsheet getN
  • 使用过滤功能时,如何按原样返回空白单元格而不是打印为零

    在使用过滤功能时参考图像中显示的数据并获取返回值 如何在使用过滤功能时按原样返回空白单元格而不是打印为零 FILTER A2 C13 A2 A13 E1 在使用过滤功能时参考图像中显示的数据并获取返回值 如何在使用过滤功能时按原样返回空白单
  • 如何在节点后端存储图像?

    我使用 Node 和 Express 作为后端 使用 Mongo DB 进行存储 我使用 multer 中间件来存储图像 我遇到了一个问题 问题是当我从本地主机存储图像时 它会保存在我的后端中 并且也会显示在数据库中 但是当我在heroku
  • androidcamera2api-onImageAvailable在session.capture之后不被调用

    我正在尝试使用相机 api2 来捕获图像 该代码在 MOTO g4 上运行良好 但当我在 NEXUS 6 上测试代码时 在 session capture 之后不会调用 onImageAvailable 并且没有保存图像 真的很沮丧 如果有
  • 如何改变 Spring Boot 提供静态文件的方式?

    最近在几个新项目中使用 JHipster 后 强烈推荐 很棒的工作 我尝试将一些概念向后移植到旧的 Web 应用程序中 本质上是将其迁移到 Spring Boot 和 Angular 在 Spring Boot 中 静态 Web 资源 HT
  • Angularjs:错误:[ng:areq]参数“HomeController”不是函数,未定义

    这是我使用 angularjs 的演示 用于创建服务文件并向控制器添加服务 我的演示有两个问题 一个是当我把
  • 如何将本地 git 存储库与其工作目录分离?

    这可行吗 我想要 git结账目录之外的另一个驱动器上的目录 我找不到一种方法来分离两者 原因是 在非常慢的网络驱动器和有限的空间上有一个交换区域 这真是一个超时的噩梦 至少可以足够快地完成存储库操作 与 svn 存储库同步 以避免超时 并且
  • Angular ui-router 按刷新会导致 404 错误

    好的 我知道这是一个开放式问题 但是 我正在使用 AngularJS 1 4 x 和 ui router 运行一个应用程序 在大多数情况下 一切都正常并符合预期 我的各个页面使用 ui sref 进行导航 页面按预期显示 并且显示的 URL