Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么MEAN.js应用程序';URL以#开头!_Javascript_Angularjs_Url_Mean Stack_Meanjs - Fatal编程技术网

Javascript 为什么MEAN.js应用程序';URL以#开头!

Javascript 为什么MEAN.js应用程序';URL以#开头!,javascript,angularjs,url,mean-stack,meanjs,Javascript,Angularjs,Url,Mean Stack,Meanjs,我刚刚开始了我的第一个平均应用程序构建。在发现mean.js如何组织应用程序后,我想知道为什么URL以/#开头/ 例如,对于我想要的登录页面: http://example.com/login 而不是: http://example.com/#!/login 所以我看了一下特快专车,没有发现任何东西。我也阅读了完整的MEAN.JS文档,但仍然没有找到任何内容 在Angular的模块配置路由文件中,URL的前缀不是#: users.client.routes.js: ... state('lo

我刚刚开始了我的第一个平均应用程序构建。在发现mean.js如何组织应用程序后,我想知道为什么URL以
/#开头/

例如,对于我想要的登录页面:

http://example.com/login
而不是:

http://example.com/#!/login
所以我看了一下特快专车,没有发现任何东西。我也阅读了完整的MEAN.JS文档,但仍然没有找到任何内容

在Angular的模块配置路由文件中,URL的前缀不是
#

users.client.routes.js:

...
state('login', {
    url: '/login',
    templateUrl: 'modules/users/views/authentication/login.client.view.html'
}).
...
最后我有两个问题:

  • 为什么URL是这样开始的?这背后有好的实践吗
  • 如果这不是一件坏事,我如何以及在哪里可以更改这些URL

  • Angular在非HTML5浏览器的url中使用标签

    这可以通过以下方式解决:

    angular.module('yourapp').config(function($locationProvider) {
        $locationProvider.html5Mode(true); 
    }));
    

    Angular在非HTML5浏览器的url中使用标签

    这可以通过以下方式解决:

    angular.module('yourapp').config(function($locationProvider) {
        $locationProvider.html5Mode(true); 
    }));
    

    Angular与所有单页应用程序框架一样,使用散列
    #
    锚来欺骗浏览器将客户端链接重定向回JavaScript,而不是发出服务器请求。用于管理此过程

    $location
    服务解析浏览器地址栏中的URL(基于
    window.location
    )并使该URL可供应用程序使用。对地址栏中URL的更改将反映到$location服务中,对$location的更改将反映到浏览器地址栏中

    其他框架使用hashbang或
    #
    允许您仍然使用
    #
    进行实际页面定位。如果您的目标用户使用兼容HTML 5的浏览器,并且您已经在服务器上配置了其他重定向,则可以自定义角度定位服务以启用此功能,也可以自定义角度定位服务以允许您根本不使用

    js开发团队选择启用hashbang格式作为他们的标准。在中,您将看到
    $locationProvider.hashPrefix(“!”)

    您还可以使用自己的自定义项(例如,
    $
    路径的
    $
    )覆盖此项,删除此行并恢复为默认值
    ,而不是
    \用于角度,或启用HTML 5模式


    彻底阅读文档是一个好主意,因为它讨论了页面刷新影响、web爬虫、服务器配置选项、HTML 5模式的注意事项等。

    与所有单页应用程序框架一样,使用散列
    #
    锚来欺骗浏览器将客户端链接重定向回JavaScript,而不是发出服务器请求。用于管理此过程

    $location
    服务解析浏览器地址栏中的URL(基于
    window.location
    )并使该URL可供应用程序使用。对地址栏中URL的更改将反映到$location服务中,对$location的更改将反映到浏览器地址栏中

    其他框架使用hashbang或
    #
    允许您仍然使用
    #
    进行实际页面定位。如果您的目标用户使用兼容HTML 5的浏览器,并且您已经在服务器上配置了其他重定向,则可以自定义角度定位服务以启用此功能,也可以自定义角度定位服务以允许您根本不使用

    js开发团队选择启用hashbang格式作为他们的标准。在中,您将看到
    $locationProvider.hashPrefix(“!”)

    您还可以使用自己的自定义项(例如,
    $
    路径的
    $
    )覆盖此项,删除此行并恢复为默认值
    ,而不是
    \用于角度,或启用HTML 5模式

    彻底阅读文档是一个好主意,因为它讨论了页面刷新影响、web爬虫、服务器配置选项、HTML5模式的注意事项等