Javascript AngularJS等框架如何路由请求

Javascript AngularJS等框架如何路由请求,javascript,angularjs,routing,routes,Javascript,Angularjs,Routing,Routes,许多web框架(如AngularJS)支持“路由”,用户可以通过该路由访问网站,并根据请求URL向他们显示模板。但这些框架完全是前端JS,只是一个“script src”导入,那么它如何能够捕获到网站的所有请求,然后重定向到JS文件进行处理,等等 任何回应都是值得赞赏的,因为一段时间以来,我一直在努力弄清楚这些框架是如何执行路由的“捕获”部分的,但运气不佳。让我给你一个简单的模型 我们可以获取当前的URL。然后,我们可以打破这个字符串,我们可以得到由“/”分隔的不同部分,根据这些部分,我们可以把

许多web框架(如AngularJS)支持“路由”,用户可以通过该路由访问网站,并根据请求URL向他们显示模板。但这些框架完全是前端JS,只是一个“script src”导入,那么它如何能够捕获到网站的所有请求,然后重定向到JS文件进行处理,等等


任何回应都是值得赞赏的,因为一段时间以来,我一直在努力弄清楚这些框架是如何执行路由的“捕获”部分的,但运气不佳。

让我给你一个简单的模型

我们可以获取当前的URL。然后,我们可以打破这个字符串,我们可以得到由“/”分隔的不同部分,根据这些部分,我们可以把条件放在哪个页面和显示什么数据上。当我们决定可以使用ajax加载所需的页面时

例如,我当前的url是,我可以从这个url中获取“模块”,然后我可以在页面主体中加载

$('body').load('module.html');
以下代码来自我当前的工作。查看如何捕获不同的URL并将其路由到我指定的文档。我还从url获取数据,用于ajax请求等

app.config(function($routeProvider) {
    $routeProvider.when("/", {
        templateUrl : "home.html"
    }).when("/logout", {
        templateUrl : "logout.html"
    }).when("/course/:id", {
        templateUrl : "course.html"
    }).when("/course/:courseId/assignment/:assignmentId", {
        templateUrl : "assignment.html"
    });
});

您是否在问,一旦文件由后端提供服务,框架如何在内部处理路由?或者后端如何“控制”前端?例如,在开发spa并为node.js中的文件提供服务时,所有路由都可以通过以下方式处理:
app.get('/*',function(req,res){res.sendFile(path.join(u dirname,'./build',index.html');})https://www.example.com/sub/dir/module
?这是怎么回事https://www.example.com/index.js,而不是
https://www.example.com/sub/dir/index.js
?如何为我们设计路由系统同样取决于我们自己。在这些应用程序中,只有一个入口点。这个入口点管理路由,不管你传递什么url。检查编辑的帖子,我有不同级别的url,但它们从根目录调用文件。@Abdulaleemkan你仍然没有回答这个问题,因为你的代码的哪一部分意味着当用户访问网页时,它运行'index.js',不尝试运行名为'module'的文件/目录。它如何覆盖默认行为。这是server@LuckyBowers的一部分。这取决于服务器将如何处理其url。它要么会转到一个目录,要么会为它创建一个路由。如果您对.htaccess文件有任何了解,我们可以通过在其中键入一些规则,将任何请求重定向到单个页面或任何其他地方。因此,如果服务器允许url打开目录,那么这就是特定服务器的编写方式。在写入节点或角度路由时,我们手动指定行为。