为什么在 JBOSS 服务器上的浏览器 angular 7 中手动刷新 URL 时页面显示 404?
why page show 404 when manually refreshing URL in browser angular 7 on JBOSS server?
当我在浏览器中执行我的应用程序时,它按预期完美运行,但是当我按 F5 or refresh page
时,它会显示 404 server error
.
我为这个问题搜索了很长时间,我找到了很多答案,但 none 对我有用。
我已经实现了HashLocationStrategy
。下面是代码:
App.module.ts
import {LocationStrategy, HashLocationStrategy} from '@angular/common';
和
imports: [
NgbModule.forRoot()],
providers:[{provide: LocationStrategy, useClass: HashLocationStrategy}]
Routing.module.ts (Create separated file for Routing)
@NgModule({
imports:[
RouterModule.forRoot(appRoutes, { useHash: true })
],
exports:[RouterModule]
})
注意 1 :如果您需要更多说明,请不要标记 "Negative",请问我任何问题。
注意 2:我是新手,不了解服务器端或 JAVA 语言
您需要在服务器中添加一个web.config文件。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="AngularJS" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="/" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
我找到了问题的答案。
我在 web.xml 文件中添加的以下代码仅适用于我。
<servlet>
<servlet-name>page</servlet-name>
<jsp-file>/WebClientV2/index.html</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>page</servlet-name>
<url-pattern>/WebClientV2</url-pattern>
<url-pattern>/WebClientV2/login</url-pattern>
<url-pattern>/WebClientV2/messages</url-pattern>
<url-pattern>/WebClientV2/contacts</url-pattern>
<url-pattern>/WebClientV2/staff-assignment</url-pattern>
<url-pattern>/WebClientV2/nurse-rounding</url-pattern>
<url-pattern>/WebClientV2/myPatient</url-pattern>
</servlet-mapping>
当我在浏览器中执行我的应用程序时,它按预期完美运行,但是当我按 F5 or refresh page
时,它会显示 404 server error
.
我为这个问题搜索了很长时间,我找到了很多答案,但 none 对我有用。
我已经实现了HashLocationStrategy
。下面是代码:
App.module.ts
import {LocationStrategy, HashLocationStrategy} from '@angular/common';
和
imports: [
NgbModule.forRoot()],
providers:[{provide: LocationStrategy, useClass: HashLocationStrategy}]
Routing.module.ts (Create separated file for Routing)
@NgModule({
imports:[
RouterModule.forRoot(appRoutes, { useHash: true })
],
exports:[RouterModule]
})
注意 1 :如果您需要更多说明,请不要标记 "Negative",请问我任何问题。
注意 2:我是新手,不了解服务器端或 JAVA 语言
您需要在服务器中添加一个web.config文件。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="AngularJS" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="/" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
我找到了问题的答案。
我在 web.xml 文件中添加的以下代码仅适用于我。
<servlet>
<servlet-name>page</servlet-name>
<jsp-file>/WebClientV2/index.html</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>page</servlet-name>
<url-pattern>/WebClientV2</url-pattern>
<url-pattern>/WebClientV2/login</url-pattern>
<url-pattern>/WebClientV2/messages</url-pattern>
<url-pattern>/WebClientV2/contacts</url-pattern>
<url-pattern>/WebClientV2/staff-assignment</url-pattern>
<url-pattern>/WebClientV2/nurse-rounding</url-pattern>
<url-pattern>/WebClientV2/myPatient</url-pattern>
</servlet-mapping>