当我打开一个子URL时,它可以在我的本地环境(例如if (check_remote_video_exists('YOUR_VIMEO_VIDEO_URL')) {
// video exists, do stuff
} else {
// video does not exist, do other stuff
}
)上使用。但是,在我使用http://localhost:4200/login
构建项目之后,所有子URL在实时服务器上均无法正常工作。
如果我使用ng build --prod
打开子URL,则该URL在已构建的项目中有效,但如果我重新加载该URL,则该URL不起作用(404)。
我的路由策略有问题吗?
index.html
this.router.navigate(['/system']);
app.module.ts
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>title</title>
<base href="/">
</head>
<body>
<app-root></app-root>
</body>
</html>
答案 0 :(得分:1)
检查是否在index.html
中设置了基本href
如果需要,您还可以使用以下命令来更新它们。
ng build --base-href /
或ng build --bh /
或ng build --prod --bh /
这将覆盖index.html中设置的基本href,如果未设置,则对其进行设置。根据部署进行设置并进行相应的修改。由于我不熟悉您的部署策略,因此无法发表评论
如果您拥有资产的其他文件夹,则您可能也对--deploy-url
选项感兴趣
请参阅[https://shekhargulati.com/2017/07/06/angular-4-use-of-base-href-and-deploy-url-build-options/]
答案 1 :(得分:0)
我找到了针对我的错误的解决方案,该解决方案与我的 .htaccess 文件有关。 这里的链接可以帮助我解决此错误。
HOWTOs / Making sure .htaccess and mod_rewrite are working as they should
sudo nano
/etc/apache2/sites-available/000-default.conf
DocumentRoot /var/www/html
下添加以下代码
<Directory /var/www/html/projectFolder>
# Don't show directory index
Options -Indexes +FollowSymLinks +MultiViews
# Allow .htaccess files
AllowOverride All
# Allow web access to this directory
Require all granted
</Directory>