我在Apache 2.4网络服务器上创建了一个带有angularjs的简单网站。我的网站文件夹如下所示:
APACHE24\HTDOCS\TEST
| .htaccess
| index.html
|
+---js
| angular-route.js
| angular.min.js
| app.js
|
\---partials
show-gem.html
我设置了一些路线,比如这些路线:
$routeProvider.when("/gem/:gemId", {
controller: "ShowGemController",
controllerAs: "showGemCtrl",
templateUrl: "partials/show-gem.html"
});
我已将FallbackResource /test/index.html
启用到我的.htaccess
文件中。
每当我手动输入网址时,我都会找到正确的页面(例如我写http://localhost:8080/test/gem/123
并获得相应的页面),但这怎么可能发生呢?我不应该被重定向到index.html
,因为/test/gem/123
不是现有资源吗?角度怎么知道它应该显示那个特定的模板?
答案 0 :(得分:1)
FallbackResource
是一种重写URI的简便方法。因此,不会有任何重定向到index.html
,但您请求的URI将映射到index.html
,Angular可以在其中处理它。
有关详细信息,请参阅以下文章:
我总是倾向于使用mod_rewrite
来处理这个问题,因为它更精细,并且可以让你控制。