2016-03-10 70 views
0

我有一个使用UI路由器的Angular APP。Angular UI路由器请求URL

.config(function($stateProvider) { 

    $stateProvider 
     .state('blog', { 
      url: '/blog', 
      templateUrl: 'assets/javascript/blog/blog.html', 
      controller: 'BlogCtrl', 
      controllerAs: 'vm' 
     }) 
}); 

如果我按与ui-sref="blog"链接,应用程序加载的博客观点,但如果我在一个新的标签MYAPP /博客打开,它trows我404错误。

Ps。我使用的是HTML5模式删除/#/

更新:

我对每条路线单独的文件,在app.js我用

.config(function($stateProvider, $urlRouterProvider, $locationProvider) { 

    $urlRouterProvider.otherwise('home'); 
    $locationProvider.html5Mode(true); 
}); 

而且具有在<base href="/"><head />

我做错了什么? 有人可以解释一下吗?

+0

你能说明你在哪里使用了html5模式吗? – v1shnu

+0

更新答案,检查 – Hiero

+0

你是否在你的index.html页面中指定了'base' url? – v1shnu

回答

3

为了在刷新/重新加载上工作,您需要正确设置.htaccess文件或类似于您的根目录并启用重写引擎。

这样的事情应该工作。

RewriteEngine On 
# If an existing asset or directory is requested go to it as it is 
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR] 
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d 
RewriteRule^- [L] 

# If the requested resource doesn't exist, use index.html 
RewriteRule^/index.html