如何根据angularjs

时间:2015-12-22 23:12:18

标签: angularjs apache .htaccess angular-ui-router

我正在使用AngularJS和Apache。对于路由我正在使用ui路由器模块。

我有一个网站http://example.com 我有一个规则.htaccess => DirectoryIndex index.html

因此,当用户转到http://example.com时,它会呈现index.html但不会在网址上显示

在Index.html上有一个按钮,您点击该按钮并将您发送到用户欢迎页面

这是url => http://example.com/userwelcome.html#/welcome

userwelcome页面有3个状态。登录,注册和欢迎

来自userwelcome.js的代码

.config(['$stateProvider', '$urlRouterProvider', function ($stateProvider, $urlRouterProvider) {

                $urlRouterProvider.otherwise('/welcome');
                $stateProvider
                        .state('login', {
                            url: '/login',
                            templateUrl: 'login/vw_login.html',
                        })
                        .state('welcome', {
                            url: '/welcome',
                            templateUrl: 'userWelcome/vw_welcome.html',
                        })
                        .state('signup', {
                            url: '/signup',
                            templateUrl: 'signup/vw_signup.html'
                        });

            }]);    

当用户登录时,该网站会重定向到home.html页面 并且网址=> http://example.com/home.html#/home

我想要的是以下网址:

用于userWelcome.html欢迎状态 http://example.com/welcome

用于userWelcome.html登录状态 http://example.com/login

for home.html home state http://example.com/home

这种结构是否可行?或者我必须在一个页面中拥有所有州(登录,注册,家庭,用户欢迎)?

使用ngroute我读到你可以使用html5mode和$ location。在我的情况下,我使用ui路由器,所以我可以混合它们吗?

在Apache中我必须创建更多重写规则吗?

我发现很多帖子,文章都在谈论漂亮的网址,但每个网站都有不同的解决方案,而我无法让它发挥作用。

1 个答案:

答案 0 :(得分:0)

由于angularjs目标SPA,所有内容实际上都是从一个页面运行,而#wit触发路由(ui-route)加载与之关联的视图并使用#将阻止浏览器转到另一个页面。

因此您无法将网站运行到例如example.com/user,然后是example.com/home 因为它是浏览器的不同导航URL