gpt4 book ai didi

html - Perl Catalyst - 防止 url 中的双路径,例如。 HTTP ://mydomainname/login/login

转载 作者:行者123 更新时间:2023-11-28 12:11:48 26 4
gpt4 key购买 nike

我正在创建一个 Catalyst 应用程序,目前我有一个简单的登录页面,我可以通过以下网址访问该页面:

http://mydomainname/login

这非常有效,它获取 html 页面并使用它引用的 css 文件创建一个漂亮的登录页面。

但是,如果我也转到以下网址:

http://mydomainname/login/login

我创建的登录页面仍然会显示,只是这次它只显示基本按钮、文本框等而没有 css,因为看起来它没有访问 css 文件进行样式设置。

这种情况一直发生在“登录”在路径中:

例如。

http://mydomainname/login/login
http://mydomainname/login/login/login
http://mydomainname/login/login/login/login/login

等等……

我想要的显然是让 http://mydomainname/login/login 不起作用或重定向到 http://mydomainname/login 例如。

我是我的 Login.pm Controller ,我有:

sub default : Private {
my ( $self, $c ) = @_;

$c->forward('login');
}

sub login : Path('/login') {
my ( $self, $c ) = @_;

$c->stash->{title} = 'Login Page';
$c->stash->{pagetype} = "html";
$c->stash->{template} = "login.html";
}

首先, Controller 应该是这样的吗? 我需要做什么来防止出现这种双 url 路径问题(例如 http://mydomainname/login/loginhttp://mydomainname/登录/登录/登录/登录)。

最佳答案

第一个 /login 从 Controller 名称匹配,第二个 /login 从 Action 名称(sub)匹配。

您需要将整个 login sub 移动到您的 Root Controller 中,或者将其逻辑移动到现有的 default 处理程序中。就个人而言,我更喜欢将登录和注销等操作放入 Root Controller 中。他们不太可能将任何其他东西束缚在他们身上或依赖于他们。 Login.pm 是否有其他 Action 或方法?

缺少的CSS样式很可能是你的login.html中的相对路径问题,或者是你主程序中静态资源的配置问题。您应该能够使用浏览器的开发工具调试那个。

关于html - Perl Catalyst - 防止 url 中的双路径,例如。 HTTP ://mydomainname/login/login,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19448881/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com