Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS躲起来了!重写_Javascript_Angularjs_Url Rewriting_Url Routing - Fatal编程技术网

Javascript AngularJS躲起来了!重写

Javascript AngularJS躲起来了!重写,javascript,angularjs,url-rewriting,url-routing,Javascript,Angularjs,Url Rewriting,Url Routing,假设我们有一个基于AngularJS的网站。我们知道如何隐藏不漂亮的/#/字符。但是,当访问者使用旧的url链接(包括/#)访问网站时,我们遇到了一个问题/即www.example.com/#/products/它将他重定向到主页www.example.com,当然这并不意味着我们希望他重定向到www.example.com/products/,所以我们尝试编写了许多重写规则,其中说,如果你通过/#的旧链接访问网站/之后,它会将您重定向到新链接,而不使用/#/。但这对我们不起作用,我们确信重写规

假设我们有一个基于AngularJS的网站。我们知道如何隐藏不漂亮的
/#/字符。但是,当访问者使用旧的url链接(包括
/#)访问网站时,我们遇到了一个问题/
www.example.com/#/products/
它将他重定向到主页
www.example.com
,当然这并不意味着我们希望他重定向到
www.example.com/products/
,所以我们尝试编写了许多重写规则,其中说,如果你通过
/#的旧链接访问网站/
之后,它会将您重定向到新链接,而不使用
/#/。但这对我们不起作用,我们确信重写规则是可以的

AngularJS设置会有问题吗?
谢谢你的时间和建议

片段标识符永远不会发送到服务器,因此不能使用服务器端代码(包括重写)处理它们。您必须使用客户端代码处理它们。

片段标识符从未发送到服务器,因此您无法使用服务器端代码(包括重写)处理它们。您必须使用客户端代码来处理它们。

我解决了这个问题,但我不是100%确定它是如何工作的,我想知道它。我所需要做的就是在HTML5模式的设置后面添加
hashPrefix(“!”)

$locationProvider.html5Mode(true).hashPrefix('!');
现在它可以按我们所希望的那样工作,但是
hashPrefix(“!”)
实际上做什么呢?我刚从文档中发现它“配置现有的提供程序”,但为什么要隐藏
#没有这个可以工作吗


请你解释一下我关于这个话题的最后两个问题。谢谢

我解决了这个问题,但我不是100%确定它是如何工作的,我想知道它。我所需要做的就是在HTML5模式的设置后面添加
hashPrefix(“!”)

$locationProvider.html5Mode(true).hashPrefix('!');
现在它可以按我们所希望的那样工作,但是
hashPrefix(“!”)
实际上做什么呢?我刚从文档中发现它“配置现有的提供程序”,但为什么要隐藏
#没有这个可以工作吗


请你解释一下我关于这个话题的最后两个问题。谢谢

您使用哪种服务器端语言using@oseintow-这应该无关紧要。首先,数据只是可用的客户端代码。是的,在您的情况下,它是不相关的,因为您已将客户端与服务器解耦。我agree@oseintow-不,因为URL中的片段标识符就是这样工作的。我用angular编写的所有应用程序都与服务器端语言相结合,我使用服务器端重定向所有缺少的页面,以便angular处理。php中的示例如下所示。如果($e instanceof NotFoundHttpException){return response()->view(“index”)->header('Content-Type','text/html');},我们将其添加到htmlwhich服务器端语言中using@oseintow-这应该无关紧要。首先,数据只是可用的客户端代码。是的,在您的情况下,它是不相关的,因为您已将客户端与服务器解耦。我agree@oseintow-不,因为URL中的片段标识符就是这样工作的。我用angular编写的所有应用程序都与服务器端语言相结合,我使用服务器端重定向所有缺少的页面,以便angular处理。php中的示例如下所示。如果($e instanceof NotFoundHttpException){return response()->view(“index”)->header('Content-Type','text/html');},我们将其添加到html中