忽略嵌入式资源路由 ASP.NET 4 WebForms

发布于 2024-11-01 17:08:44 字数 453 浏览 0 评论 0原文

我在 asp.net 4 webforms 中使用路由。我有一个主题 dll,其中包含外观所需的所有图像、css 和 js 文件。我只有 1 个页面,可以动态加载页面中的控件。我使用路由来区分请求。定义了以下路由:

routes.Ignore("{resource}.axd/{*pathInfo}");
routes.MapPageRoute("Default-All-Pages", "Pages/{*OtherParams}", "~/Default.aspx", false);

已经定义了用于管理嵌入资源的处理程序。当应用程序通过代码执行时,将请求重定向到default.aspx。然后它继续加载 css 文件并再次将请求路由到 default.aspx。

我希望它将 css/jpg 请求路由到虚拟路径处理程序而不是页面。我应该定义什么路由,以便 default.aspx 页面不会处理文件请求?

I am using routing in asp.net 4 webforms. I have a theme dll which contains all the images, css and js files required for look and feel. I have only 1 page which dynamically loads the control in the page. I use routing to distinguish the request. Following routes are defined:

routes.Ignore("{resource}.axd/{*pathInfo}");
routes.MapPageRoute("Default-All-Pages", "Pages/{*OtherParams}", "~/Default.aspx", false);

Handler for managing the embedded resources is already defined. When the application is executed it by virtue of code, redirects the request to default.aspx. it then goes ahead to load the css file and again routes the request to default.aspx.

I want it to route the css/jpg request to virtual path handler and not the page. What route should I define so that the request for files will not be handled by default.aspx page?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

墨小沫ゞ 2024-11-08 17:08:44
routes.Ignore("{*allaspx}", new { allaspx = @".*\.aspx(/.*)?" }); 
routes.Ignore("{*allcss}", new { allcss = @".*\.css(/.*)?" }); 
routes.Ignore("{*alljpg}", new { alljpg = @".*\.jpg(/.*)?" }); 
routes.Ignore("{*alljs}", new { alljs = @".*\.js(/.*)?" }); 

这解决了我的问题。

routes.Ignore("{*allaspx}", new { allaspx = @".*\.aspx(/.*)?" }); 
routes.Ignore("{*allcss}", new { allcss = @".*\.css(/.*)?" }); 
routes.Ignore("{*alljpg}", new { alljpg = @".*\.jpg(/.*)?" }); 
routes.Ignore("{*alljs}", new { alljs = @".*\.js(/.*)?" }); 

This solved my problem.

紫竹語嫣☆ 2024-11-08 17:08:44

与忽略 HttpHandler 的方式相同,您可以为 css 和 jpg 文件添加忽略规则:

routes.Ignore("{resource}.css/{*pathInfo}");
routes.Ignore("{resource}.jpg/{*pathInfo}");

这些文件将从路由表中排除,并由任何注册的处理程序/模块/ISAPI 过滤器处理。

The same way you're ignoring HttpHandlers, you can add ignore rules for css and jpg files:

routes.Ignore("{resource}.css/{*pathInfo}");
routes.Ignore("{resource}.jpg/{*pathInfo}");

These will be excluded from the route table and will be handled by any registered handlers/modules/ISAPI filters.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文