我的模型叫做BlogPost和名为BlogPostsController的控制器,它具有BlogPost的所有基本CRUD方法.
我试图了解如何在一般URL中路由用户以获取URL /blog/post-name
而不是/blog_posts/post-name
"禁用" /blog_posts
.我应该重命名我的控制器还是应该更改路线(以及如何)?
Kohana的新用户...我想知道是否可以使用正则表达式来设置一个处理所有请求的路由,例如除了'main_page'之外的所有请求?
谢谢你的时间
这里是我的困境:我有两种类型的语义完全不同的路线,并应该去不同的控制器.
ny/new-york/brooklyn/cleaners # should go to a list of cleaners for a neighborhood
ny/new-york/cleaners/mrclean # should go to an individual cleaner's page
Run Code Online (Sandbox Code Playgroud)
请注意,这里的"brooklyn"和"cleaners"仅仅是示例.该应用程序有许多服务类型(例如"清洁")和许多邻域,因此不可能将列表硬编码到正则表达式中并使用它来区分这两个路径.
是否有可能在路由决策中涉及访问ActiveRecord模型的任意方法?我正在使用Rails 2.3.8.
我有两条路线
; category route
resources.router.routes.category.type = "Zend_Controller_Router_Route"
resources.router.routes.category.route = "shopping/:idTwo/:id/*"
resources.router.routes.category.defaults.module = "default"
resources.router.routes.category.defaults.controller = "shopping"
resources.router.routes.category.defaults.action = "category"
resources.router.routes.category.reqs.id = \w+
resources.router.routes.category.reqs.id = \d+
; searchroute
resources.router.routes.search.type = "Zend_Controller_Router_Route"
resources.router.routes.search.route = "shopping/search/:id/*"
resources.router.routes.search.defaults.module = "default"
resources.router.routes.search.defaults.controller = "shopping"
resources.router.routes.search.defaults.action = "search"
resources.router.routes.search.reqs.id = \w+
Run Code Online (Sandbox Code Playgroud)
类别路由必须与http://mrc.localhost/shopping/Childrens-Clothing/98等网址匹配,并且工作正常
搜索路径必须与http://mrc.localhost/shopping/search/dvd+box+set 和http://mrc.localhost/shopping/search/123等网址匹配.
搜索路径适用于没有关键字(:id)作为整数的网址,如http://mrc.localhost/shopping/search/dvd+box+set但如果关键字只是整数,那么类别路由器就像网址一样优先http://mrc.localhost/shopping/search/123,因此调用类别操作而不是搜索操作,因为您看到:idTwo可以是任何字符串,它匹配"搜索"因此使用类别路由但我希望搜索路由是无论什么是关键字,都使用
我不知道为什么我经常与此斗争,但有人可以解释为什么这不起作用?
/
重定向到控制器的index
动作home
.
/gallery/
抛出404未找到的错误.
/gallery/index
重定向到控制器的index
动作gallery
.
从文档:
定义路径时,可以为参数指定默认值.如果URL中未包含该参数的值,则使用默认值.您可以通过将字典对象分配给Route类的Defaults属性来设置路由的默认值.
我不明白这是如何遵循这条规则的:
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
Run Code Online (Sandbox Code Playgroud)
它对我来说:
controller
未定义a,请使用Home
.action
未定义,请使用Index
.gallery
并且URL中不包含操作,因此它应该转到Index
.我是否遗漏了某些不必要的混淆和愚蠢的东西?
我总是发现MVC3路由有问题但接受了它.然后我开始使用Rails和Node框架,并且它们具有可笑的简单路由,所以现在.NET MVC只是在它不起作用时使我烦恼或者让我使用复杂的模式.
作为参考,以防有人询问,我的图库控制器,操作和视图都已定义并在我浏览时工作/gallery/index
.
public class GalleryController : Controller
{
public ActionResult Index()
{
return View();
} …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在Angular.js中创建一个简单的待办事项列表应用程序,并且很难让路由和ng-view正常工作.我一直在主要通过Dan Wahlin Modules,Routes and Factories编写的代码示例
现在,当我运行这段代码时,我知道Angular已经正常启动并且功能但是ng-view似乎不知道我的routes.js文件告诉它显示什么,(我的两个部分文件只是随机文本所以我会知道ng-view何时正常工作......).我想我的routes.js中的所有内容都已正确编码,但无法弄清楚为什么ng-view仍然没有被Angular处理.有人可以向我解释为什么在我的代码中忽略了ng-view?
目前,这里有我的文件:
的index.html
<!doctype html>
<html lang="en" ng-app="todoApp">
<head>
<link rel="stylesheet" type="text/css" src="css/app.css">
<title>Todo App</title>
</head>
<body>
<div ng-view></div>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"> </script>
<script src="js/routes.js"></script>
<script src="js/controllers.js"></script>
</body>
Run Code Online (Sandbox Code Playgroud)
controller.js
var todoApp = angular.module('todoApp');
todoApp.controller('UsersCtrl', function($scope) {
$scope.users = [];
});
todoApp.controller('TodoCtrl', function($scope) {
$scope.todos = [];
});
Run Code Online (Sandbox Code Playgroud)
routes.js
var todoApp = angular.module('todoApp', []);
todoApp.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/users', {templateURL: 'partials/users.html', controller: 'UsersCtrl'});
$routeProvider.when('/todos', {templateURL: 'partials/todos.html', controller: 'TodoCtrl' });
$routeProvider.otherwise({ redirectTo: '/users' });
}]);
Run Code Online (Sandbox Code Playgroud) 尽管我努力寻找一个关于如何为使用PHP构建的Web应用程序建立安全的单一入口点架构的教程,但我还是找不到一个好的教程.谁知道,也许我的搜索查询很糟糕......看看Laravel的代码似乎是一个好主意,但这是一个让你的头脑旋转的好方法.那里有太多让我理解的东西.
话虽如此,我将如何创建这样一个既适用于应用程序又易于安全(例如防止本地文件包含)的架构呢?
我正在使用Scala 播放2.我想定义路由器规则,以便任何错误的URL重定向到根:
# Home page
GET / controllers.Application.index(ignore="")
# global fall over
GET /*ignore controllers.Application.index(ignore)
Run Code Online (Sandbox Code Playgroud)
这很难看,我必须定义一个无用的参数来满足语法...任何想法如何删除该ignore
参数?
如何使用正则表达式匹配URL,它决定使用相应的函数处理
package main
import(
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/pattern", resolve)
http.ListenAndServe(":8080", nil)
}
func resolve(w http.ResponseWriter, r * http.Request) {
fmt.Println(r.URL.Host)
}
Run Code Online (Sandbox Code Playgroud) 我在使用Angular和AWS Amplify Console了解重写和重定向规则时遇到麻烦。
在我的有角度的应用程序中,我有一些与此相关的路由:
const routes: Routes = [
{ path: '', redirectTo: '/login', pathMatch: 'full' },
{ path: 'frontpage', redirectTo: '/somepath/frontpage', pathMatch: 'full'},
{ path: 'login', component: LoginComponent },
{ path: 'somepath', component: SecureComponent, children: [
{ path: '', redirectTo: '/frontpage', pathMatch: 'full' },
{ path: 'frontpage', component: ForsideComponent }
]}
];
Run Code Online (Sandbox Code Playgroud)
使用本地服务器(ng serve / localhost),一切正常。
但是,当通过Amplify控制台部署我的应用程序时,唯一可行的路径是somedomain.amplifyapp.com/
该路径,然后重定向到somedomain.amplifyapp.com/login
(应该的)。但进入somedomain.amplifyapp.com/login
,somedomain.amplifyapp.com/somepath/frontpage
或者直接以下链接给我一个XML拒绝访问页面。
上面的行为是与此重写和重定向规则一起使用的:
[
{
"source": "**",
"target": "/index.html",
"status": "200",
"condition": null
}
]
Run Code Online (Sandbox Code Playgroud)
有谁知道如何设置重写和重定向规则以与Angular …
url-routing ×10
php ×3
angular ×1
angularjs ×1
aws-amplify ×1
go ×1
html ×1
http ×1
javascript ×1
kohana ×1
laravel ×1
regex ×1
routes ×1
scala ×1