使AngularJS评估除“/ pages /”之外的所有路由

时间:2014-10-09 14:23:38

标签: angularjs angularjs-routing

我的HTML5模式网站有一个404状态,除了来自/pages/的任何内容之外,我想启用它,因为这些是从服务器端CMS -Mezzanine-提供的。有什么想法吗?

$stateProvider
    .state('app.404', {
      url: '*path',
      views: { 'main': { templateUrl: '/static/app/views/404.html' } }
    })

1 个答案:

答案 0 :(得分:0)

如果我理解正确,那么我认为这需要在服务器端处理。我做了类似的事情,我只想在服务器上呈现几个网址,而所有其他网址都指向了基本等于index.html的内容,这是我的角应用程序所在的位置。

这可能很棘手,因为显然需要在这些参数之外提供静态资源。

不知道你的堆栈在服务器上是什么我只能建议我使用的技术,即在'/'使用我的角度应用程序,但要使角度应用程序中的所有路由使用相同的前缀(在我的情况下为'/manage/*'

然后,在服务器端,/manage/*被重定向到index.html,其他所有内容都照常提供。

类似且更容易出错的解决方案可能会尝试重定向除您希望正常提供的资源之外的所有内容。对于Apache,.htaccess可能看起来像这样:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^js|css|img|templates|static|pages
RewriteRule .* index.html

我之所以说它容易出错,只是因为如果您将从域中提供任何其他资源,或者至少确保记住您的所作所为,那么您需要确保并保持更新。调试。