首页 文章

在角度4,nginx服务器和apache的路由刷新404

提问于
浏览
4

我在Angular 4中创建了一个新组件并添加了它的路径'account' . 当我运行 ng serve 主页打开并且有一个指向帐户页面的链接 . 点击帐户页面链接帐户页面打开 . 如果我刷新页面,它可以工作 .

问题是当我使用 ng build 进行构建并将构建上传到apache时 . 如果我单击'account'链接,则会打开帐户页面 . 但如果我刷新或直接尝试开帐户路线,我会收到404错误 .

如果我添加'use hash',那么它与'#'一起使用,但我不想要这个 .

我使用棱角分明4.2.4

4 回答

  • 1

    您可以查看Link,了解如何在Apache上部署Angular Apps .

    How to Serve index.html in apache

    这可以通过添加.htaccess文件(在index.html所在的同一目录中)以及以下内容来实现 . <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^ index \ .html $ - [L]
    RewriteCond%
    ! - f
    RewriteCond%
    !-d
    重写规则 . /index.html [L]
    </ IfModule>配置

  • 7

    尝试在nginx conf文件中添加query_string

    location / {
        alias /var/www/my_project/dist/;
        index index.html;
        try_files $uri $uri/ /index.html?$query_string;
    }
    
  • 1

    在后端(服务器端)只是将所有(404)错误/无法识别的请求映射到索引(包括所有角度构建脚本) . 然后它返回索引 . 在前端,你可以得到你需要的东西 . 它映射到你需要的页面 .

    例如: - In spring Boot back-end this is an example answer

  • 0

    把它放在root中的.htaccess上

    RewriteEngine on

    # Don't rewrite files or directories
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]
    
    # Rewrite everything else to index.html
    # to allow html5 state links
    RewriteRule ^ index.html [L]
    

相关问题