当前位置: 首页 > 知识库问答 >
问题:

如何从Amazon(Elastic Beanstalk)angular应用程序的URL中删除#

阴福
2023-03-14

我有一个angular(1.5.9)应用程序托管在Amazons Elastic Beanstalk上。

我想从URL中删除#并遵循本指南和其他类似指南。

>

$locationProvider.html5Mode(true);

完成index.html更新:

<head>
    ...
    <base href="/">
</head>

所有参考资料的更新均已完成:

<代码>/#/登录-

我已经通过ssh连接到我的亚马逊服务器并创建了一个。htaccess文件:

[ec2-user@ip-xxx-xx-x-xxx]$ll-a /var/www/html12 drwxr-xr-x 2 root root 4096 22 maj 13.43. drwxr-xr-x 6 root root 4096 1 maj 23.56...-rw-r--r--1 root root 339 22 maj 13.43. htaccess

内容如下:

RewriteEngine On  
# If an existing asset or directory is requested go to it as it is
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
RewriteRule ^ - [L]

# If the requested resource doesn't exist, use index.html
RewriteRule ^ /index.html

我有索引。html和应用程序。/src/main/resources/static目录下的js文件

访问www.mypage。com并导航到www.mypage。com/about在url中没有#的情况下效果很好,但是刷新页面会得到404。

我做错了什么?亚马逊服务器上通常是如何做到这一点的?

共有2个答案

颛孙成益
2023-03-14

要从URL中删除#,您需要在配置中设置HTLML5模式:

appModule.config(['$locationProvider', function($locationProvider) {
  $locationProvider.html5Mode(true);   
}]);

还要在中设置基数

<head>
    ...
    <base href="/">
</head>

如果您使用的是Angular 1.6或更高版本,则还需要更新hashPrefix(默认值):

$locationProvider.hashPrefix('');

邬安邦
2023-03-14

从迈克的评论和这里和这里的一些链接中得到灵感,我选择放弃。htaccess文件,httpd。亚马逊上的conf文件或其他类似重定向。相反,我只是将这个控制器添加到Java Spring Boot后端:

package com.example

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class CatchAllController {
    @RequestMapping(value = "/**/{[path:[^\\.]*}")
    public String redirect() {
        return "forward:/";
    }
}

使用@RestController对我不起作用,我必须使用@Controller。

该模式匹配其中没有“.”的所有内容,因此不匹配. jpg图像等资源。此外,所有其他endpoint仍然首先匹配(我猜是因为它们比这条规则更具体)

再加上我最初问题中的1-3步,这让一切都按预期进行,重新加载效果很好,任何地方都不需要#。现在我可以在我熟悉的Java环境中控制它,在localhost上轻松测试,并且不会迷失在mod_rewrite文档中。。。

 类似资料:
  • 有没有办法取消发布,然后从Android开发者控制台的应用程序列表中永久删除一个应用程序?

  • 我试图开发一个android应用程序,可以擦除其他应用程序的缓存数据,我试图浏览所有的博客,但没有一个对我有效,我可以通过以下代码清除我的应用程序的缓存 我想清除其他应用程序的缓存,可以任何机构请帮助我,如果我错了请纠正我,提前谢谢。

  • 问题内容: 在此URL中,我有一些Json数据。如何 使用该URL将数据获取到我的andorid应用程序。 我在Google中看到过引用。但是没有解决办法。 我是Andorid的新手。 请帮我。 问题答案: 做这个 : 步骤-1在您的gradle中导入排球库: 实现’com.android.volley:volley:1.1.0’ 然后在Java中编写以下代码:

  • 问题内容: 如何从静态页面的网址中删除? 另外,我需要将任何网址重定向到没有该网址的网址。(即到)。 问题答案: 感谢您的答复。我已经解决了我的问题。假设我的页面在下,则适用以下.htaccess 规则。

  • 我有一个Angular project web app,在我使用“ng build…”构建它之后,它正在Apache web服务器中成功运行命令现在,我想让它成为Android应用程序,为此,我尝试使用Cordova。首先,我创建了一个Cordova项目,然后在www目录下,我放置了来自NG的文件。是的,在那之前我还使用了Cordova平台add android。但是,当我在模拟器或真实设备上安装

  • 问题内容: 我正在使用angular-ui-router库,URL出现问题。 我有以下代码: app.js: index.html: 这行得通,但是当我从标记中删除“#”时,此行不通。 如何从网址中删除“#”符号? 问题答案: 如果要导航而不使用哈希标签,则需要启用HTML5Mode: 您还需要通过将以下代码添加到HTML文件的来告诉angular应用的根URL : 请注意,对HTML5模式的支持