无法从普通HTML网站跳转至Angular页面,请求技术支持
问题描述
我有一个简单的HTML网站,想要点击网站内的按钮跳转至Angular网站。目前HTML网站与Angular构建产物均部署在Hostinger同一服务器上。
用于跳转的HTML按钮代码如下:
<header class="manpower_inquiry"> <div class="manpower_inquiry__text-box"> <h1 class="heading-primary"> <span class="heading--top">manpower supply</span> <br/> <!-- <span class="heading-primary--sub--service">Leading Retail security providers </span> --> </h1> <a href="../inquiry/MAN_P/index.html" class="btn btn--white btn--animated">Inquiry</a> </div> </header>
相关场景信息:
- Hostinger服务器上,Angular构建产物存放在
inquiry/MAN_P目录下,包含index.html及各类编译后资源文件 - 发起跳转的HTML页面位于Angular目录的上级层级目录中
- 点击按钮后出现404页面未找到错误
- Angular项目已配置默认路由,指向
ManpowerComponent
解决方案
1. 修正跳转路径
Angular单页应用无需指定index.html,直接指向目录即可,同时优先使用绝对路径避免层级混淆:
- 修改链接为绝对路径(推荐):
<a href="/inquiry/MAN_P/" class="btn btn--white btn--animated">Inquiry</a>
- 若坚持用相对路径,确认层级关系后调整为:
<a href="../inquiry/MAN_P/" class="btn btn--white btn--animated">Inquiry</a>
2. 配置服务器支持Angular路由
Angular路由依赖前端路由机制,直接访问子路由或刷新页面会触发服务器404,需在Hostinger中配置重定向规则:
- 进入
inquiry/MAN_P目录,创建或编辑.htaccess文件 - 添加以下规则:
RewriteEngine On RewriteBase /inquiry/MAN_P/ RewriteRule ^index\.html$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /inquiry/MAN_P/index.html [L]
该规则会将所有非文件/目录的请求转发到Angular入口文件,确保路由正常工作。
3. 验证构建产物完整性
检查inquiry/MAN_P目录下是否包含完整的Angular构建文件:index.html、main.*.js、polyfills.*.js、styles.*.css等,缺失文件会导致页面加载失败。
内容的提问来源于stack exchange,提问作者Ekansh Patel
相关产品推荐
相关产品推荐

