【发布时间】:2018-07-28 06:58:25
【问题描述】:
我在laravel 中遇到了这个问题,我好几天都无法解决。希望有人能指出我正确的方向。
密码重置链接在我的本地主机设置example 上正常工作
但是,当我将它部署到生产服务器上时,我得到的密码重置 link 是不同的。
它似乎暗示了引号而不是 '/' 这应该是正确的 url。任何人都知道修复这个错误的密码重置链接错误的正确方法是什么?
【问题讨论】:
-
您是如何生成 URL 代码的?你的路线是什么样的?这些东西之间可能不匹配。
-
这实际上是我的路线...Route::get('passwords/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('password.resetForm');
-
您是如何在刀片模板上生成实际 URL 的?你是在使用
route()助手还是别的什么? -
这是我用来发送电子邮件的路由 Route::post('passwords/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.sendEmail'); ..在刀片前端明智..我只需使用标准表单操作 它确实会发送到我的邮件,但是重置 url 在生产服务器上是错误的,而不是在本地主机上
-
我怀疑您的某些路线之间存在路线冲突,例如
GET password/reset和GET password/reset/token。如果您像route('password.reset', $token)这样传递您的令牌参数,那么它可能会尝试将您的令牌作为 GET 参数应用到错误的路由,而不是作为 URL 本身的一部分(即 /reset?{token} 而不是 reset/{令牌})。要确认是否是这种情况,请尝试将您的网址更改为其他内容。