|
|
1
22
您将在示例url中看到,一旦您得到404错误,就无法使其工作,但是如果您
在前面包含哈希
角度特定的url
为什么在刷新时停止工作?你的
webserver正在拦截get
从您的浏览器请求并尝试直接转到目录
默认情况下,Angular使用 HTML5风格导航 ,但是使用当前的web服务器设置,您将需要旧的angularjs样式(使用hash)。 从这里开始,你已经 两种解决方案 :
我想说的是,走杂烩式有一个 有几个缺点 ,这可能与您的场景无关:
希望你觉得这个答案有用:) |
|
2
13
使用.htaccess,您还可以尝试以下方法:
|
|
|
3
8
要避免使用哈希路由,必须正确编辑Web服务器配置,这是最好的解决方案。你只需要对它进行配置,让它回退到
阿帕奇
将重写规则添加到
小精灵
使用
伊斯
将重写规则添加到
来源: https://angular.io/guide/deployment#server-configuration |
|
|
4
4
应用程序内模块.ts
导入后,将以下行添加到提供程序。
前任:
这会解决你的问题。读 Documentation 在这里。 |
|
|
5
1
我想你得到404是因为你的请求 http://localhost/route Tomcat服务器上不存在。由于angular 2默认使用html 5路由,而不是在url的末尾使用散列,刷新页面看起来像是对不同资源的请求。 在tomcat上使用角路由时,需要确保服务器在刷新页面时将应用程序中的所有路由映射到main index.html。解决这个问题有多种方法。不管哪个适合你,你都可以去。 1)将以下代码放入部署文件夹的web.xml中:
2)您还可以尝试将hashLocationStrategy与路由的URL中的一起使用: 尝试使用: routermodule.forroot(路由,{usehash:true}) 而不是: routermodule.forroot(路由) 使用hashlocationstrategy,您的url将如下所示: 3)tomcat url re write valve:如果找不到资源,则使用服务器级配置重定向到index.html重新编写url。 3.1)在META-INF文件夹中创建一个context.xml文件,并在其中复制下面的上下文。
3.2)在WEB-INF中,创建文件rewrite.config(该文件包含URL重写规则,Tomcat使用该规则重写URL)。在rewrite.config中,复制以下内容: 重写cond%{servlet_path}!-F 重写规则^/(.*)$/index.html[l] |
|
|
6
0
在我的情况下,我做了以下事情 方法1: 在你 应用模块.ts 导入下面的内容
并与
方法2: 对于NGNIX,
在定位块中添加以下行
并与
|