angularjs - 无法在 nginx 中直接访问的 Angular 路由

标签 angularjs nginx

事情是这样的:我为练习 angular 设置了最简单的 nginx 配置,并将 routeProvider 配置为使用 html5mode。到现在为止还挺好!我将基数设置为“/”,我指向/view1 和/view2 的链接工作正常,但仅当我在索引页面中单击这些链接时。当我尝试直接在浏览器中访问它们(或重新加载页面)时,nginx 返回 403 forbidden。这是一个简单的配置,但我找不到关于它的简单解释:(

我想以一种任何路由都可以正常工作的方式进行设置,而不必在我的 nginx site.conf 中明确设置它(一个一个)。顺便说一下,权限很好!

这是实际的conf文件:

server {
    listen  *:80;
    server_name rbs.ang;
    root    /_dev/angularjs/app;
    index   index.html;
    charset UTF-8;

    location / {
        expires -1;
        add_header  Pragma "no-cache";
        add_header  Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0";
        try_files   $uri $uri/ index.html;
   }
}

最佳答案

当路由不匹配时,您需要在服务器上配置回退路由以提供 index.html 文件。
这有效:

location / {
    try_files $uri $uri/ /index.html?$query_string;
}

关于angularjs - 无法在 nginx 中直接访问的 Angular 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30807954/

相关文章:

php - 没有 .php 扩展名的 nginx + php-fpm

Django、nginx、gunicorn、主管 : UnicodeEncodeError - when uploading non-latin named file

nginx - Ember CLI 通过 Lighting Strategy 部署

javascript - 从 promise 返回值到模板

javascript - 嵌套 ng-repeat 无法正常工作

angularjs - jmeter 返回未定义的输出

javascript - ColumnMapping.DataTableToObjectList 为我提供缺少时区信息的 DateTime 属性

javascript - 我们可以从 angular.element 获取 DOM 对象的属性名称吗?如果是,怎么办?如果没有,我们可以从 Angular 方面的其他技能中获得以及如何获得?

php - Nginx 和 PHP-FPM - 权限被拒绝 - Windows

angularjs - $http.post Request header field Access-Control-Allow-Origin is not allowed by Access-Control-Allow-Headers 错误