我不明白这个。在我本地,我正在尝试开发一个网站。在该网站链接在应用程序中工作,但当我尝试 F5 或复制该链接并将其粘贴到浏览器时,我收到 404 页面未找到错误。我用谷歌搜索了一下,发现这与解析 URL 有关,但不知道如何做到这一点。这是我的代码:
Javascript
.config(function($stateProvider, $urlRouterProvider, $locationProvider) {
$stateProvider
.state('baba', {
url: "/",
templateUrl: "baba.html"
})
.state('icerik', {
url: "/icerik/:ad",
templateUrl: "icerik.html",
controller: "mmgCtrl",
})
.state('oku', {
url: "/oku/:serix/:klasor",
templateUrl: "oku.html",
controller: "nbgCtrl"
})
$locationProvider.html5Mode(true);
$urlRouterProvider.otherwise('/');
.controller('indexCtrl', function($scope, $location) {
$scope.yonlen = $location.path();
})
我有两条路线。 /icerik
和 /oku
。所以我认为我应该对哪个 url 进行哪个范围的 if 语句。
index.html
<div ng-repeat="manga in mangas">
<a ng-href="{{yonlen}}></a>
</div>
最佳答案
在幕后,这使用了pushState
。
当您使用 JavaScript 更改页面状态时,您应该将 URL 更改为会使服务器生成处于该状态的页面。
这意味着 if the JavaScript failed for any reason ,内容would still load correctly如果有人点击深层链接,他们会直接(因此很快)加载他们真正关心的内容。
例如:
- 访问者到达主页
- 服务器提供主页(以及所有 Angular 代码)
- 他们点击“博客”链接
- 您加载博客内容并将其放在页面上(使用 JS)
- 您将 URL 更改为
/blog/
(仍然使用 JS),而无需从服务器加载新页面
但是然后:
- 访问者到达博客
- 服务器交付博客页面(以及所有 Angular 代码)
您正在更改 URL,但尚未在该 URL 中放置正确的内容。这需要服务器端工作。
关于javascript - $location的概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33198045/