首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

刷新时IIS -404中的Angular2路由-如何使用HashLocationStrategy

在刷新时,使用HashLocationStrategy来解决Angular2路由中的IIS -404错误问题。

Angular2中的路由默认使用的是PathLocationStrategy,它使用HTML5的history API来管理URL,并且不带有#符号。但是在一些情况下,比如在IIS服务器上部署Angular2应用时,刷新页面会导致404错误,因为IIS服务器会尝试去找到对应的物理文件。

为了解决这个问题,可以使用HashLocationStrategy来替代PathLocationStrategy。HashLocationStrategy在URL中使用#符号来管理路由,这样刷新页面时,IIS服务器会忽略#后面的内容,不会再去寻找物理文件,从而避免了404错误。

要使用HashLocationStrategy,首先需要在Angular2应用的路由模块中进行配置。在路由模块中,需要导入HashLocationStrategy和LocationStrategy,并在providers数组中进行配置,如下所示:

代码语言:typescript
复制
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { HashLocationStrategy, LocationStrategy } from '@angular/common';

const routes: Routes = [
  // 路由配置
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule],
  providers: [
    { provide: LocationStrategy, useClass: HashLocationStrategy }
  ]
})
export class AppRoutingModule { }

在配置中,通过providers数组中的provide和useClass来指定使用HashLocationStrategy。

配置完成后,刷新页面时就不会再出现IIS -404错误了。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)和腾讯云对象存储(COS)。

腾讯云云服务器(CVM)是一种可弹性伸缩的云服务器,提供高性能、高可靠的计算能力,适用于各种应用场景。

腾讯云对象存储(COS)是一种安全、低成本、高可靠的云存储服务,适用于存储和处理各种类型的数据。

更多关于腾讯云云服务器和对象存储的详细介绍和产品链接,请参考以下链接:

相关搜索:在Angular2路由中,使用新路由器时,如何仅重定向空路径?在React路由器中使用"Link to“时如何刷新页面?使用Angular2路由器,路由的所有子节点如何加载相同的组件?在angular2的组件中通过服务调用的路由变更时,如何停止SetInterval?当命名插座不是插座的子插座时,如何使用angular2路由器插座如何在使用动态路由时定义react路由器的IndexRoute在angular2中切换到新的路由时,如何清除视图中的所有内容?如何使用ASP.NET路由到IIS (Web Garden)中的特定Web Worker进程?如何在angular2中使用谷歌自定义覆盖的路由器导航?oidc-使用IdentityServer3 - Angular2 SPA的客户端,如何刷新数据访问令牌在使用浏览器的"back“按钮时,如何刷新查询集?在Rails中的根路径上使用FriendlyId时如何使用命名路由如何在使用react-router时重置为路由的默认状态如何使用VBA为一个工作表中的所有连接禁用在全部刷新时进行连接刷新如何在使用Javascript刷新页面时保留对类所做的更改使用stateProvider进行路由时,如何获取AngularJS SPA上的URL参数在Laravel中定义datatable时,如何正确使用ajax调用中的路由?如何在Express中使用路由参数时忽略要加载的特定文件(Angular2 RC5)如何使用SystemJS为每个模块创建可由路由器延迟加载的捆绑包?当使用不带注释的vertx路由时,您如何定义安全性?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Angular2学习记录-给后端程序员经验分享

    1.前言 前几天刚下定决心把毕业设计改造下,因为毕业设计算是我学习基石,学习到东西都尽可能在这个平台上施展,锻炼自己.改造为前后端分离,前端使用angular2,后端只提供接口.便于以后维护.那么就要学习...,self并不受angular管理,导致刷新变量是self中isBackColor. 3.2http参数传递 按照下面代码传参数应该是没有问题,但是我遇到了url被编码问题,例如输入`1111@qq.com...angular2路由匹配规则是从根路由也就是forRoot()这个开始.在该处匹配寻找规则....['id'],另外可以使用订阅模式queryParamMap.subscribe(),路由参数更新自动通知 3.5组件通信 父->子:子组件使用input装饰器,接受父组件属性,并且可使用ngOnChanges...(使用formData对象,调用其append方法添加文件,再使用angular2http组件post上去)uploadAvatar(file: any): Promise{ let

    3.1K20

    Angular2 :从 beta 到 release4.0 版本升级总结

    // 表单相关 'angular2/commom' => '@angular/forms' 三、新增NgModule 官方说明 Angular 模块能帮你把应用组织成多个内聚功能块。...Angular 模块是带有 @NgModule 装饰器函数类。 @NgModule 接收一个元数据对象,该对象告诉 Angular 如何编译和运行模块代码。...变更 拆分和新增了路由模块 ActivatedRoute:获取路由信息 路由事件实例,如NavigationEnd表示导航事件变更完毕,等 反正改了挺多,请自行查询官方API文档…[捂脸] 新增路由模块...解决办法:目前在路由事件结束(NavigationEnd),手动更新组件状态。 内嵌样式失效。"...无法从router里获取RouteParamsAPI。 原因:angular(v4.1.1)中,使用ActivatedRouteAPI获取路由信息。

    8.1K00

    Angular2 VS Angular4 深度对比:特性、性能

    对于成熟开发人员来说,有以上两种选择是一件很棒事情;但是,对于处于学习阶段新晋开发人员来说,可能有点不知如何选择。...接下来一起了解Angular2这个版本发布原因以及如何将其添加到Web开发中。 ...动态载入: 这是之前Angular版本均不具备功能,Angular2包含了这个功能,即使在开发人员忙碌,也能够添加新指令或控件。 模板: 在Angular2中,模板编译过程是异步。...子路由路由将通过提供自身路由功能,将程序每个部分转换为更紧密应用程序,这有助于整个程序功能集合封装。...但对于具有Angular2知识有经验开发人员来说,会觉得Angular很容易使用,并且使用Angular对项目非常有帮助。

    8.7K20

    Angular12个经典问题,看看你能答对几个?(文末附带Angular测试)

    Angular应用程序具有路由器服务单个实例,并且每当URL改变,相应路由就与路由配置数组进行匹配。...在成功匹配,它会应用重定向,此时路由器会构建ActivatedRoute对象树,同时包含路由器的当前状态。在重定向之前,路由器将通过运行保护(CanActivate)来检查是否允许新状态。...在Angular2中,组件中发生任何改变总是从当前组件传播到其所有子组件中。如果一个子组件更改需要反映到其父组件层次结构中,我们可以通过使用事件发射器api来发出事件。...这通常用在setter中,当类中值被更改完成。 可以通过模块任何一个组件,使用订阅方法来实现事件发射订阅。...如何在Angular 2应用程序中使用codelyzer? 所有企业应用程序都会遵循一组编码惯例和准则,以更好方式维护代码。

    17.3K80

    ASP.NET Core: 全新ASP.NET !

    下面我们来看看如何使用 @inject。 @inject 指令允许你注入一个类中方法到你视图中。 这是一个简单类,来展示一些异步方法。...在新版本 Visual Studio 中,你不需要再做这些额外步骤,仅仅是保存你修改和刷新浏览器即可。...这是在刷新页面之后输出: Attribute Routing: [controller] 和 [action] 标记 在过去 MVC 和 Web API 中,使用路由属性可能会导致一些问题,尤其是你正在做一些代码重构...这是因为路由必须设定为字符串类型,当你修改了控制器名字,你就必须修改路由属性字符串 MVC Core 提供了新 [controller] 和 [action] 标记,它们可以解决这个问题。...查看我关于开始在 ASP.NET 中使用 Angular 和 Angular2 文章 。

    11.3K101

    干货 | 前端阶段性总结之「框架相关」那些事

    比较坑地方是Angular每次不向下兼容升级了吧。不只是Angular1到Angular2重新设计,甚至是Angular2自身更新也不全兼容。...这也是一个比较有意思概念吧,大家可以参考《深度剖析:如何实现一个 Virtual DOM 算法》。...虚拟DOM,本质上是在JS和DOM之间做了个缓存: 用js对象结构表示DOM树结构,并构建真正DOM树 状态变更,重新构建新DOM树,记录新旧差异 将差异应用到原有DOM树上 当然,React和...Vue不像Angular,它们使用都是需要搭配组合像路由和状态管理等,其实到最后也都是全家桶方式,不过它们相对自由吧。...一般来说,路由都是通过history API进行监听和读写,具体大家可以看看这篇《Web开发中 前端路由 实现几种方式和适用场景》。

    95520

    Vuejs和其他前端框架对比

    相同之处在于,两个框架都专注于UI层,其他功能如路由、状态管理等都交由同伴框架进行处理。 而不同之处是在于它们如何关联它们各自配套框架。...(es6代码),style(css样式) (3)路由, vue非常小巧,压缩后min源码为72.9kb,gzip压缩后只有25.11kb,想比Angular为144kb,可以自驾搭配使用需要库插件,类似路由插件...不过就算有这么多好处,但是相比Angular2,Vue还是有很多不足: Angular2原生Form支持: Angular2原生Form模块功能相当强大。...测试Angular2一开始就设计好了如何对组件进行测试,而Vue组件虽然也很好写测试,但是没有官方推荐唯一标准(当然,对视图是否需要测试还有待探讨)。...相比之下,Vue 单文件组件允许你非常容易使用 ES2015 和你想用 CSS 预编译处理器。 在部署生产环境,Polymer 建议使用 HTML Imports 加载所有资源。

    3.8K110

    AngularDart4.0 英雄之旅-教程-07路由

    在开发过程中,使用HashLocationStrategy更方便,因为pub serve不支持deep linking。...component(组件):此路由导航到(HeroesComponent)将被激活组件。 在路由和导航页面阅读更多关于定义路由信息。...当用户通过应用程序导航路由器会在正下方显示每个组件。 刷新浏览器,然后访问localhost:8080 /#/ heroes。 你应该看到英雄列表。...RouterLink指令告诉路由在用户点击链接位置。 您使用链接参数列表定义了一个路由指令, 这个列表在我们小样本中只有一个元素,引用路由名称。...你走过路 以下是您在此页面中所取得成果: 您添加了Angular路由器来浏览不同组件。 您了解了如何创建路由器链接来表示导航菜单项。 您使用路由器链接参数导航到用户选择英雄细节。

    17.5K30

    vue.js与其他前端框架对比

    相同之处在于,两个框架都专注于UI层,其他功能如路由、状态管理等都交由同伴框架进行处理。 而不同之处是在于它们如何关联它们各自配套框架。...(es6代码),style(css样式) (3)路由, vue非常小巧,压缩后min源码为72.9kb,gzip压缩后只有25.11kb,想比Angular为144kb,可以自驾搭配使用需要库插件...不过就算有这么多好处,但是相比Angular2,Vue还是有很多不足: Angular2原生Form支持: Angular2原生Form模块功能相当强大。...测试Angular2一开始就设计好了如何对组件进行测试,而Vue组件虽然也很好写测试,但是没有官方推荐唯一标准(当然,对视图是否需要测试还有待探讨)。...相比之下,Vue 单文件组件允许你非常容易使用 ES2015 和你想用 CSS 预编译处理器。 在部署生产环境,Polymer 建议使用 HTML Imports 加载所有资源。

    4.1K80

    用程序实现HTTP压缩和缓存

    园子里已经有很多文章介绍了如何IIS里开启压缩和缓存,但我想搞清楚该如何自己写代码来实现http压缩或者缓存,这样做原因主要有下面两点: 1.IIS版本不同,启用IIShttp压缩方式也不同,...IIS7还好一些,但对于IIS6来说,稍微麻烦一点; 2.如果我把应用部署在虚拟空间上,是没办法去设置虚拟主机IIS 所以了解如何用程序实现http压缩和缓存还是很有必要。...加入这个version参数目的是为了刷新客户端缓存,当css或js文件做了改动,只需要在url中改变这个version值,客户端浏览器就会认为这是一个新资源,从而请求服务器获取最新版本。...其实,即使客户端缓存资源没有过期,浏览器在某些时候也会重新请求服务器,例如按F5刷新时候。...让我们来看一下如何使用这两类。 首先要清楚是我们要压缩是文本内容,例如css、js以及View(aspx),图片不需要压缩。

    2K20

    vue项目代码部署发布总结

    vue-router路由模式主要有hash模式和history模式两种,一般线上项目使用history模式,这种模式用户体验更好。...history模式在刷新浏览器时会向后端服务器发送真实请求,比如:如果访问vue项目进入首页,在跳转至列表页面操作刷新页面,浏览器会向url发送get请求,由于vue项目的路由是前端路由,页面将会变为...如何避免以上情况发生呢? vue-router官方给出了多种解决方案,相对于apache和iis解决方案来说,nginx是更方便解决方案,下面也会主要就nginx解决方案进行讲解。...举个例子:当用户请求 http://xxx.com/example ,这里 $uri 就是 /example。try_files 会到硬盘里尝试找这个文件。...最后一个问题,在开发环境中如果项目需要跨域访问接口api,如何配置呢,这里需要配置webpack,以vue-cli为例子,配置文件在build目录下dev-server.js中,修改如下: 其核心内容其实使用到了

    1.8K20

    实战 | Change Detection And Batch Update

    那么这里就有两个很重要问题了:当数据变化时,这些框架/库是如何感知到?当我们连续更新数据,这些框架/库如何避免连续更新DOM,而是进行批量更新?...检测出错log所用 fn 更新DOM get 获取当前数据 last 老数据 那么Angular1是如何感知到数据变化呢?...如果我们不使用Angular1提供事件系统、定时器和$http,如在jQuery事件中进行数据更新,我们需要手动调用$apply。...Angular1是通过封装自动调用$apply,但是存在手动调用场景,为了解决这个问题,Angular2没有采用1实现机制,转而使用了Zone.js。...在内部异步队列优先使用MutationObserver,如果不支持则使用setTimeout(fn, 0) — vuejs.org 这是官方文档上说明,抽象成代码就是这样: Vue是通过JavaScript

    3.2K20

    反向代理(Reverse Proxy)及 IIS 7 应用请求路由模块

    反向代理服务器位于本地WEB服务器和外部网络之间, 如下所示: 当用户浏览器发出一个HTTP请求,通过域名解析将请求定向到反向代理服务器(如果要实现多个WEB 服务器反向代理,需要将多个WEB服务器域名都指向反向代理服务器...ARR还有一种特性叫做shared hoster,用于修改如何共享目前提供共享主机,为客户增加额外服务。...IIS 7.0 应用请求路由模块(Application Request Routing (ARR) module),我们可以轻松实现反向代理.如何使用可参看下列几篇文章: 如何利用 IIS7 ARR...模組實做 Reverse Proxy 機制 在IIS7中应用Application Request Routing配置反向代理 web developer tips (36):使用IIS7.0 应用请求路由模块管理网站...beta版程序 用 IIS 7、ARR 與 Velocity 建设高性能大型网站 IIS 6可以使用google code上一个项目:A C# reverse proxy for IIS

    1.5K80

    关于w3wp.exe

    Q : 那么如何关闭这个进程呢?...2、设置应用程序池CPU监视,不超过25%(服务器为4CPU),每分钟刷新,超过限制关闭。 根据w3wp取得是那个一个应用程序池: 1、在任务管理器中增加显示pid字段。...,默认为"60"(注意,是60%不是60M),即制定了ASP.NET进程能够使用所有物理内存60%,当ASP.NET使用内存量超过这个限额,IIS会开始自动回收进程,即创建一个新进程去负责应付HTTP...在将 IIS 6 应用程序配置为 Web 园,您只需在“应用程序池属性”“性能”选项卡“最大工作进程数”框中,设置一个大于 1 工作进程数。...由于请求以循环方式路由到应用程序池工作进程,因此 Web 园对于会话信息存储在进程中应用程序作用可能不大。在少数情况下,让多个工作进程运行同一个应用程序会造成资源竞争。

    1.6K21

    iis 403.502

    遇到个奇葩case,图文并茂多个.asp站点,访问过快就会出现403 forbidden,具体特征:1、点浏览器刷新按钮点多快都没事,F5刷新也没事(因为走了浏览器本地缓存,并不会对服务器产生多大影响...和HTTPERR日志都是UTC+0,换算到北京时间需要+8小比如我截图时间是2023-3-1 02:24:52实际就是2023-3-1 10:24:522、新建应用程序池附加给新建动态测试站点(...void Page_Load(Object src, EventArgs e){ label1.Text = "Hello World";}使用...,但公网访问只报了403,并没有把502报出来HTTP Error日志没产生记录(默认路径C:\Windows\System32\LogFiles\HTTPERR)图片在机器内部用内网ip访问:直接报了更精确...:图片图片很显然"IP 地址和域限制"就是我们要找东西默认是未配置:为空图片很显然有问题机器这里是配过,取消配置后,问题消失图片技能扩展:如何收集IIS日志https://cloud.tencent.com

    1.9K60

    AngularDart4.0 英雄之旅-教程-08HTTP 顶

    这与@Component注解中提供者列表具有相同效果。 注意:除非您有适当配置后端服务器(或模拟服务器),否则此应用程序不起作用。 下一节将展示如何模拟与后端服务器交互。...当应用程序使用模拟英雄列表,更新直接应用于单个应用程序范围共享列表中英雄对象。 现在,您正在从服务器获取数据,如果您希望更改持续存在,则必须将其写回服务器。...刷新浏览器,更改英雄名称,保存更改,然后单击浏览器“后退”按钮。 现在应该继续进行更改。 添加加入英雄能力 要添加英雄,应用程序需要英雄名字。 您可以使用与添加按钮配对输入元素。...* ngFor只能通过异步管道(AsyncPipe)进行路由才能对Stream执行所有操作。 异步管道subscribes 流并产生* ngFor英雄列表。...您配置了内存中Web API。 您了解了如何使用Streams。

    11K30

    Change Detection And Batch Update

    那么这里就有两个很重要问题了:当数据变化时,这些框架/库是如何感知到?当我们连续更新数据,这些框架/库如何避免连续更新DOM,而是进行批量更新?...get 获取当前数据 last 老数据 那么Angular1是如何感知到数据变化呢?...如果我们不使用Angular1提供事件系统、定时器和$http,如在jQuery事件中进行数据更新,我们需要手动调用$apply。 Angular2 ?...Angular1是通过封装自动调用$apply,但是存在手动调用场景,为了解决这个问题,Angular2没有采用1实现机制,转而使用了Zone.js。...在内部异步队列优先使用MutationObserver,如果不支持则使用setTimeout(fn, 0) — vuejs.org 这是官方文档上说明,抽象成代码就是这样 var waiting

    3.3K40
    领券