标签: url-routing

使用ASP.NET路由提供静态文件

可以使用ASP.Net路由(而不是MVC)来提供静态文件吗?

说我想路线

http://domain.tld/static/picture.jpg
Run Code Online (Sandbox Code Playgroud)

http://domain.tld/a/b/c/picture.jpg
Run Code Online (Sandbox Code Playgroud)

我想动态地做这件事,因为重写的URL是动态计算的.我无法一劳永逸地建立静态路线.

无论如何,我可以创建这样的路线:

routes.Add(
  "StaticRoute", new Route("static/{file}", new FileRouteHandler())
);
Run Code Online (Sandbox Code Playgroud)

FileRouteHandler.ProcessRequest方法我可以重写从路径/static/picture.jpg/a/b/c/picture.jpg.然后我想为静态文件创建一个处理程序.ASP.NET使用它StaticFileHandler来实现此目的.不幸的是,这堂课是内部的.我试图使用反射创建处理程序,它实际上工作:

Assembly assembly = Assembly.GetAssembly(typeof(IHttpHandler));
Type staticFileHandlerType = assembly.GetType("System.Web.StaticFileHandler");
ConstructorInfo constructorInfo = staticFileHandlerType.GetConstructor(BindingFlags.NonPublic | BindingFlags.Instance, null, Type.EmptyTypes, null);
return (IHttpHandler) constructorInfo.Invoke(null);
Run Code Online (Sandbox Code Playgroud)

但使用内部类型似乎不是正确的解决方案.另一个选择是实现我自己的StaticFileHandler,但正确地这样做(支持范围和etags等HTTP的东西)是非常重要的.

我该如何处理ASP.NET中静态文件的路由?

asp.net url-routing

71
推荐指数
4
解决办法
7万
查看次数

快递路线参数条件

我的Express应用程序上有一条如下所示的路线:

app.get('/:id', function (request, response) {
  …
});
Run Code Online (Sandbox Code Playgroud)

ID始终是一个数字.但是,目前这条路线与其他东西相匹配,例如/login.

我想我想要两件事:

  1. 如果ID是数字,则仅使用此路由
  2. 只有当没有已定义的特定参数的路线时(例如与之冲突/login).

可以这样做吗?

routing url-routing node.js express

65
推荐指数
2
解决办法
4万
查看次数

在Node.js中组织路由

我开始看看Node.js. 我也在用Express.我有一个问题 - 如何组织Web应用程序路由?所有示例都将所有这些app.get/post/put()处理程序放在app.js中,它运行得很好.这很好,但如果我有一个简单的硬件博客?有可能做这样的事情:

var app = express.createServer();
app.get( '/module-a/*', require('./module-a').urls );
app.get( '/module-b/*', require('./module-b').urls );
Run Code Online (Sandbox Code Playgroud)

// file: module-a.js
urls.get('/:id', function(req, res){...}); // <- assuming this is handler for /module-a/1
Run Code Online (Sandbox Code Playgroud)

换句话说 - 我喜欢Django的URLConf,但是在Node.js中.

url-routing node.js express

60
推荐指数
3
解决办法
7万
查看次数

如何使用Meteor创建多页面应用程序?

我是Javascript的新手,只是出于好奇而开始摆弄Meteor.让我感到惊讶的是,似乎所有HTML内容都被合并到一个页面中.

我怀疑有一种方法可以引入一些指向特殊页面的URL处理.似乎"todo"示例能够通过某种类来实现Router.这是URL处理的"规范"方式吗?

假设我可以处理URL,我将如何构建HTML代码以显示单独的页面?在我的情况下,他们每个人都可以拥有完全独立的数据集,因此根本不需要共享任何HTML代码.

javascript url-routing meteor

55
推荐指数
5
解决办法
2万
查看次数

AngularJS - Animate ng-view过渡

我有2个html页面,welcome.html以及login.html这两者都是"插入"到index.html通过在URL dependending ngview属性和路由器供应商,作为我的AngularJS应用程序的一部分.

可以在AngularJS主页的Wire up a Backend下找到此示例.

我的问题:有没有办法动画之间的过渡welcome.htmllogin.html

javascript animation url-routing angularjs

52
推荐指数
3
解决办法
11万
查看次数

具有多个路由值的ASP.NET MVC URL路由

当我有一个需要多个参数的路由时,我遇到了Html.ActionLink的问题.例如,给定我的Global.asax文件中定义的以下路由:

routes.MapRoute(
    "Default",                                              // Route name
    "{controller}.mvc/{action}/{id}",                           // URL with parameters
    new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
);

routes.MapRoute(
    "Tagging",
    "{controller}.mvc/{action}/{tags}",
    new { controller = "Products", action = "Index", tags = "" }
);

routes.MapRoute(
    "SlugsAfterId",
    "{controller}.mvc/{action}/{id}/{slug}",
    new { controller = "Products", action = "Browse", id = "", slug = "" }
);
Run Code Online (Sandbox Code Playgroud)

前两条路线没有问题,但是当我尝试使用以下方法创建到第三条路线的动作链接时:

<%= Html.ActionLink(Html.Encode(product.Name), "Details", new { id = product.ProductId, slug = Html.Encode(product.Name) }) %>
Run Code Online (Sandbox Code Playgroud)

我最终得到了像[site-root]/Details/1?slug = url-slug …

asp.net asp.net-mvc url-routing

50
推荐指数
3
解决办法
6万
查看次数

首选客户端路由解决方案?

我正在设计一个基于浏览器的单页浏览器.

JQuery已经在我的应用程序中使用.我目前正计划KnockoutJS用于数据绑定和UI管理.但是我Backbone.js过去曾经使用过,我对控制器层提供的路由设施印象非常深刻.

我还研究了一些基于JQuery的解决方案,比如用于客户端路由的pathjs.

如果有人能够为选择合适的路由系统提供建议和指导,那就太好了.

我不愿意使用Backbone.js而不是KnockoutJS因为优秀的数据绑定设施KnockoutJS.

javascript jquery url-routing backbone.js knockout.js

50
推荐指数
3
解决办法
4万
查看次数

如何从代码隐藏中访问RouteData?

使用ASP.Net路由时,如何从代码隐藏中获取RouteData?

我知道你可以从RouteHandler的GetHttpHander方法获得它(你得到了RequestContext),但是你可以从代码隐藏中得到它吗?

有没有...

RequestContext.Current.RouteData.Values["whatever"];
Run Code Online (Sandbox Code Playgroud)

...你可以全局访问,就像你可以使用HttpContext一样?

或者是否只是从RouteHandler内部访问RouteData?

asp.net routing url-routing

48
推荐指数
2
解决办法
2万
查看次数

Angular2路由器VS ui-router-ng2 VS ngrx路由器

使用ui-router-ng2而不是新的Angular2路由器有什么好处和缺点?在过去,我使用ui-router和Angular 1.x而不是使用ngRoute,因为我需要更好地支持嵌套状态/路由.

那么现在,Angular2呢?我想听听你的意见,以便我能评估这两个机会.

此外,搜索和搜索谷歌我发现ngrx /路由器,我不知道.你能告诉我Angular2 的内置路由器,Angular2和ngrx路由器的新ui路由器之间有什么区别吗?

url-routing angular-ui-router angular2-routing ngrx angular

47
推荐指数
1
解决办法
1万
查看次数

在Express-js中使用路由

所以我开始使用Node.js. 我在Nodejs.org看过 Ryan Dahl的视频,并听说他为网站推荐了Express-js.

我下载了最新版本的Express,并开始编写代码.我在/上有一个完全成熟的静态视图,但是一旦我尝试发送参数,我就会遇到这样的错误:

Cannot GET /wiki
Run Code Online (Sandbox Code Playgroud)

我尝试按照expressjs.com上的指南进行操作,但是在最新版本中使用路由的方式已经改变,这使得指南无法使用.

指南:

app.get('/users/:id?', function(req, res, next){
    var id = req.params.id;
    if (id) {
        // do something
    } else {
        next();
    }
});
Run Code Online (Sandbox Code Playgroud)

由Express生成:

app.get('/', routes.index);
Run Code Online (Sandbox Code Playgroud)

当我尝试添加另一条路线时,我的问题就出现了.

app.get('/wiki', routes.wiki_show);
Run Code Online (Sandbox Code Playgroud)

我尝试了很多方法,但我一直得到Cannot GET /wiki(404)错误.

routes/index.js看起来像这样:

exports.index = function(req, res) {
    res.render('index', { title: 'Test', articles: articles, current_article: current_article, sections: sections })
};
Run Code Online (Sandbox Code Playgroud)

我在那里做的唯一事情是添加一些参数(同一文件中的数组),这我工作.但是,当我复制内容并更改exports.indexexports.wikiexports.wiki_show仍然得到Cannot GET /wiki错误.

任何人都可以向我解释我在这里缺少什么吗?- 谢谢.

url-routing node.js express

45
推荐指数
3
解决办法
10万
查看次数