我在使用angular cli编写的apache web服务器上运行一个单页网站。我有一个主页和多个链接,使用routerlink标签导航,正常工作。但是,当我点击“关于”时,它会导航到website.net/about,一切都很完美,直到重新加载页面或者我在网站引发404错误时手动输入。“
这是主要的应用代码:
的index.html:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Title</title>
<base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body>
<app-root></app-root>
</body>
</html>
app.module.ts:
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { RouterModule} from '@angular/router';
import { AppComponent } from './app.component';
import { ProgramsComponent } from './programs/programs.component';
import { AboutComponent } from './about/about.component';
@NgModule({
declarations: [
AppComponent,
ProgramsComponent,
AboutComponent
],
imports: [
BrowserModule,
RouterModule.forRoot([{
path: 'programs',
component: ProgramsComponent
},
{
path: 'about',
component: AboutComponent
}
])
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
app.component.ts:
import { Component } from '@angular/core';
import {ProgramsComponent} from './programs/programs.component';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'Title';
}
app.component.html:
<div id="header" style="text-align:Left">
<header>
<a href="../index.html">
<h1>
{{ title }}
</h1>
</a>
<nav>
<div class="nav-comp">
<a routerLink="/about">About</a>
<a routerLink="/programs">Programs</a>
</div>
</nav>
</header>
</div>
<router-outlet></router-outlet>
如果可以使用apache web服务器解决这个问题,那么任何帮助和/或链接都会受到赞赏我会打开它来固定它但不希望
答案 0 :(得分:0)
我猜这个问题出在你的apache配置中,显然你的代码没有问题。
答案 1 :(得分:0)
好的,所以我不得不做一些挖掘,我想在reddit上使用感谢u / vaskemaskine获取.htaccess
文件和this post上的sci buff但是我在这里
首先在/var/www/html
我必须创建一个名为.htaccess
的文件并将此代码放入其中
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(.*) /index.html [NC,L]
然后为了允许这种情况发生,由于Apache 2.4的变化,我必须AllowOverrides
更改<{p}} {/ 1}}
/etc/apache2/apache2.conf
到
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
然后我在运行<Directory />
Options FollowSymLinks
AllowOverride All
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride All
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
时遇到错误,因为它没有安装,但只需在终端中运行RewriteEngine
即可清除