标签: url-routing

正则表达式,用于捕获所有出现的由字符序列分隔的文本

是否有可能构造一个正则表达式来捕获所有出现的由字符序列分隔的文本?换句话说,我正在寻找一种等效的标准.split()方法。

我不能使用split(),因为正则表达式用于指定Tornado Web应用程序的URL路由。例如:

handlers = [
    (r'/posts/([0-9a-zA-Z_\-]+)', PostsHandler),
]
Run Code Online (Sandbox Code Playgroud)

当为在Tornado,Django或任何其他实现Routes模式的Web框架上构建的Web应用程序指定URL路由时,这样的正则表达式会派上用场。特别是将未知长度的URL路径解析为参数列表。

到目前为止,我设法提出了以下正则表达式:

/^\/posts(?:\/([a-zA-Z0-9_\-]+))+/
Run Code Online (Sandbox Code Playgroud)

不幸的是,当表达式匹配时/posts/show/some-slug/15,它仅返回最后一个匹配组(15),而不是['show', 'some-slug', '15']

我想要实现的是:

  • /posts/edit/15/ => ['edit', '15']
  • /posts/edit/15 => ['edit', '15']
  • /posts/2010/15/11 => ['2010', '15', '11']

python regex url tornado url-routing

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

如何让url_helper在Rails中传递permalink而不是id?

我的Rails3项目中有以下路由:

match "/blog/:permalink" => "posts#show", :as => :post
Run Code Online (Sandbox Code Playgroud)

当我通过视图链接到我的帖子时:

<%= link_to @post.title, post_path(@post) %>
Run Code Online (Sandbox Code Playgroud)

帖子的id传递给post_path帮助器(即使我的路由指定了永久链接传递.

如何强制post_path发送永久链接而不是帖子的id?我可以明确地打电话,post_path(@post.permalink)但这看起来很脏.

我在路线上遗漏了什么吗?

谢谢!

seo ruby-on-rails permalinks url-routing ruby-on-rails-3

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

CakePHP(2.0)动态URL

我目前正在研究CakePHP 2.0,并希望将旧的1.3项目转换为2.0.我将从头开始,因为项目中有很多代码可以更好.

其中一个是动态URL,项目多语言甚至URL都会更改为所选语言.例如:

英语:/pages/new-article 荷兰语:/paginas/nieuw-artikel

两者都会去 PagesController::display();

注意:URL可以更长,页面可以有子页面,也可以添加到URL中.例如:/pages/new-article/article-subpage

现在,我之前采用的方式是为所有事情做一个特定行动的路线.喜欢*去PagesController::index();

然而,这似乎减慢了应用程序的速度,并带来了很多问题.

所以我的问题是,有更简单的方法吗?

我不想硬编码任何东西,我应该能够更改/pages/article/page/article无需更改代码.

注意:如果您知道在1.2或1.3中执行此操作的方法,那也将是很好的,2.0并没有那么不同.

php cakephp url-routing

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

用于管理应用程序状态的JQuery Address的简单示例

我正在使用jQuery地址库来重写我的URL,具体取决于用户在页面中执行的操作.目的是允许用户为页面添加书签并稍后返回.页面永远不会刷新,因为所有服务器交互都是通过ajax完成的.

jQuery Address正在写这样的URL:

HTTP://本地主机:9000 /#/ U/scott_tiger

我需要在Play中设置路由,以便能够将该请求路由到适当的控制器.所以我设置了这个:

GET     /#/u/{username}                Controller.showUser
Run Code Online (Sandbox Code Playgroud)

但这不起作用,路由定义被忽略.我尝试过很多东西,例如试图逃避"#"并用一个我用Character.toString(35)填充的变量替换它.这些都不起作用.

有谁知道如何正确定义路由或获取jQuery地址不写"#".

编辑:"#"没有被发送到服务器做它.卫生署!好的,问题被修改了.

java jquery url-routing fragment-identifier playframework

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

Codeigniter路由 - 使用它太多了?

我是Codeigniter的新手,我试图通过将旧网站转换为CI来习惯它.

我无法理解的一件事是路由.如果我不想拥有像/ controller/method/id这样的url结构,我必须将它更改为$route['controller/(:num)'] = "controller/method/$1";routes.php中的内容.这对我来说似乎效率低下,我还应该做些什么吗?

例如,在我的网站上,网址是/ game/4242和/ player/SomeDude

php codeigniter url-routing

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

具有任意数量的URL段的Laravel 4路由

我有一个L3应用程序,我正在尝试移植到L4.在L3版本中,我的一条路线是

Route::get('/(:any)/(:all?)', etc...
Run Code Online (Sandbox Code Playgroud)

这允许我处理任意数量的URL段,例如:

/contact_page
/store_category
/store_category/shirts_category
/store_category/shirts_category/specific_shirt_page
/an/arbitrary/number/of/nested/categories
Run Code Online (Sandbox Code Playgroud)

但是在L4中我无法弄清楚如何模仿(:all?)的功能

以下代码有效:

Route::get('/{arg1?}/{arg2?}/{arg3?}', function($arg1='home', $arg2, $arg3)
{
  //do something
});
Run Code Online (Sandbox Code Playgroud)

所以我可以添加大量的可选参数(超过我认为在实际使用中我会需要的),但这不是很优雅.

在Laravel 4中是否有某种方法来定义可以响应任意数量的URL段的Route?

php url-routing laravel laravel-4

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

无法使用javascriptRoutes与Play Framework 2一起使用

我正在尝试javascriptRoutes在Play 2(Scala)中使用,我收到错误(见下文).这是我做的:

添加javascriptRoutes方法到Application控制器

def javascriptRoutes = Action { implicit request =>
    import routes.javascript._
    Ok(Routes.javascriptRouter("jsRoutes")(Orders.searchProducts))
        .as("text/javascript")
}
Run Code Online (Sandbox Code Playgroud)

添加路由到routes文件

GET    /assets/javascripts/routes    controllers.Application.javascriptRoutes
Run Code Online (Sandbox Code Playgroud)

添加<script>导入到main.scala.html

<head>
...
<script type="text/javascript" src="@routes.Application.javascriptRoutes"></script>
...
</head>
Run Code Online (Sandbox Code Playgroud)

有了这些更改,我在JavaScript控制台中收到以下错误:

GET http://localhost:9000/assets/javascripts/routes 404 (Not Found)
Uncaught ReferenceError: jsRoutes is not defined
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

ajax scala url-routing playframework-2.0

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

如何在JQuery中设置flask url_for

设置url_for()在Jinja2的模板的是非常简单的(只要它在HTML).我一直在尝试从JQuery内部设置它,如下所示:

<script>
    function my_func(key) {
        var newHref = sprintf("{{url_for('fig', selector='%s')}}", key);
        $('#my_id').attr('href', newHref);
    }
<script>
Run Code Online (Sandbox Code Playgroud)

其中sprintf仅仅是jQuery的一个标准的字符串格式化功能.

现在什么都没发生.

我也用onClick功能代替了它href.它看起来像这样:

function my_Clicked(key) {
    $.ajax({
        type: 'GET',
        url: sprintf("{{ url_for('fig', selector = '%s')}}", key)
    });
}
Run Code Online (Sandbox Code Playgroud)

再次,<button>单击时没有任何反应.

这甚至可能吗?Jinja2/Flask标记{{ }}似乎只出现在HTML中,并在加载页面时进行处理.但是,我不明白为什么在页面加载后设置动态URL是不可能的,因此当您单击它时,请求只会被发送回服务器.


编辑 使用odai alghamdi建议的扩展后,我遇到了一个令人困惑的问题.

我正在进行onClickAJAX调用<button>.它现在看起来像这样:

function cropzoneClicked(key) {
    $.ajax({
        type: 'GET',
        url: flask_util.url_for('fig', {selector:key})
    });
}
Run Code Online (Sandbox Code Playgroud)

但是,单击按钮时没有任何反应.我知道正在调用该函数,因为我可以在那里发出警报.但是,没有任何内容被呈现,'GET'请求也没有返回成功的回调

jquery url-routing jinja2 flask

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

为什么我的Web API服务器拒绝接受来自Android的调用?

我可以毫无问题地从Windows应用程序访问我的Web API服务器.但是,从Android来看,却是另一回事

那为什么会这样?

"localhost"使用错误的东西(在URL中)?我应该使用计算机的名称吗?

字符串(字面意思为" http://localhost:28642/api/Departments/GetCount?serialNum=4242")是否需要逐字逐句?

调用REST方法的Windows应用程序和调用相同REST方法的Android应用程序之间的区别是什么会导致后者失败(连接被拒绝)?

android url-routing asp.net-mvc-routing asp.net-web-api econnrefused

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

Jinja2网址代

<a href="{{ url('affiliate', affiliate=object.slug) }}">{{ object.name }} </a> 
Run Code Online (Sandbox Code Playgroud)

导致错误:reverse()得到一个意外的关键字参数'affiliate'

python django url-routing jinja2

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