问题描述
使用angular做一个文档帮助,左侧是目录树,右侧用到ng-view首页如下:
<p class='container-fluid bs-docs-container'><p class='row'><p ng-controller='DocMenu' ng-init='init()' class='col-md-3 col-sm-3 col-sx-3'> <p class='bs-sidebar hidden-print affix-top'> <ul class='nav bs-sidenav'><li class='panel-title'> <a href='https://www.6hehe.com/wenda/13681.html#en-us_topic_0059503914.html'>概述</a> <a href='https://www.6hehe.com/wenda/13681.html#en-us_topic_0055728380.html'>FAQ</a></li> </ul> </p></p> <p ng-view data-spy='scroll' data-target='doc_navbar'><!-- <p style='margin-bottom: 100px;'></p> --> </p></p><!-- docs end --> </p>
js文件如下
’use strict’;angular.module(’portalDoc’, [’ngRoute’]).controller(’DocMenu’, function() {}).controller(’DocContent’, function($scope) {}).config(function($routeProvider, $locationProvider) { $routeProvider .when(’/en-us_topic_0059503914.html’, { templateUrl: ’en-us_topic_0059503914.html’}) .when(’/en-us_topic_0055728380.html’, { templateUrl: ’en-us_topic_0055728380.html’}) .when(’/en-us_topic_0054463579.html’, { templateUrl: ’en-us_topic_0054463579.html’}) .when(’/en-us_topic_0055728381.html’, { templateUrl: ’en-us_topic_0055728381.html’}) .when(’/en-us_topic_0055728382.html’, { templateUrl: ’en-us_topic_0055728382.html’}) .when(’/en-us_topic_0054463600.html’, { templateUrl: ’en-us_topic_0054463600.html’}) .when(’/en-us_topic_0054463621.html’, { templateUrl: ’en-us_topic_0054463621.html’}) .when(’/en-us_topic_0054463631.html’, { templateUrl: ’en-us_topic_0054463631.html’}) .when(’/en-us_topic_0054463504.html’, { templateUrl: ’en-us_topic_0054463504.html’}) //$locationProvider.html5Mode(true);});
正常访问时链接是这样 http://localhost:8011/home.html#/en-us_topic_0055728380.html
碰到一个问题无法解决,templateUrl中各html之间互相会链接,直接用的<a href='https://www.6hehe.com/wenda/en-us_topic_0054463504.html'>xxxx</a>现在href前面没有“#”,直接单击链接访问链接是 http://localhost:8011/en-us_topic_0054463504.html ,只显示模板页面单独的内容,不能加载首页那些内容,少了/home.html的内容
由于模板的内容是用其他工具写作生成,链接前没有’#’(不方便加,因为还有其他用途)
在这种情况下,链接如何能够路由到模板?能让链接变成这种 http://localhost:8011/home.html#/en-us_topic_0055728380.html
非常感谢!
另外,尝试过使用 locationProvider.html5Mode(true),访问home.html时链接变成 http://localhost:8011/,左侧链接去掉#能正常访问,在home.html跳转到en-us_topic_0054463504.html时,链接变成 http://localhost:8011/en-us_topic_0054463504.html ,能正常访问,但是新开一个tab直接放 http://localhost:8011/en-us_topic_0054463504.html 又变成不加载首页home.html那种情况
问题解答
回答1:第一个问题 你用路由了 普通的a标签是不能这样跳转的 要用相应的路由a标签跳转 或者用函数做路由跳转第二个问题 你想直接访问子路由这个是要服务器配伪静态