我正在部署laravel-localization的我的第一个laravel应用程序。不幸的是,我目前得到的错误,Laravel-本地化部署 - 在此服务器上找不到请求的URL/en
未找到
所请求的URL/EN此服务器上找到。
此外,在尝试 使用ErrorDocument来处理请求时遇到404未找到错误。
我已经搜索了网络,试图找到其他人有同样的问题,看看他们是否有一个可行的解决方案。我发现至少有one,但看起来他无法解决它。我也发现这个解决方案here,但这两个想法似乎都不起作用。
当我改变(在config/laravellocalization.php文件)
'hideDefaultLocaleInURL' => false,
从假到真
'hideDefaultLocaleInURL' => true,
我可以看到主页,但仅此而已。所有其他页面都重定向到404错误。
我也改变了index.php文件,以反映我的文件夹结构作为此站点的公共文件夹是文件夹中的public_html中的文件夹内:
require __DIR__.'/../../myapp/bootstrap/autoload.php';
...
$app = require_once __DIR__.'/../../myapp/bootstrap/app.php';
注意:1一切工作在我的本地主机上。部署似乎存在问题。
注2:因为它是当前配置,该网站会自动尝试加载www.mysite.com/en版本,这让我觉得我的index.php文件的更改是正确的。没有这些更改,我会收到页面无法加载的错误。
注3:这里是我当前的文件夹结构:
- /主页/用户名
- mostOfMyFiles
- 的public_html
--- nameOfUrl
---- publicFiles
注4:关于路由,这里是我目前在我的web.php文件中有:
<?php
Route::group([
'prefix' => LaravelLocalization::setLocale(),
'middleware' => [ 'localeSessionRedirect', 'localizationRedirect' ]
], function()
{
Route::get('/', function()
{
return View::make('welcome');
});
Route::get(LaravelLocalization::transRoute('routes.about'), function() {
return View::make('about');
});
Route::get(LaravelLocalization::transRoute('routes.contact', '[email protected]'), function() {
return View::make('contact');
});
Route::post(LaravelLocalization::transRoute('routes.contact'),
['as' => 'contact', 'uses' => '[email protected]']);
});
我曾尝试向组中添加'web'中间件,如here所示,但这也未解决问题。 :(
注意:我还托管了另一个站点,这就是为什么我在具有URL名称的文件夹中存在公共文件的原因。
任何想法可能是什么问题?
我欣赏所有想法,评论和批评。 :)
你确定你应该改变'索引添加的代码块。 php文件?我不认为这是一个好主意。在'config'文件或'.env'文件中通常需要更改变量 – xperator
@xperator。这实际上是我第一次部署Laravel站点。所以,我不太确定。我正在学习本教程:https://www.youtube.com/watch?v = 6g8G3YQtQt4 - 建议以我所做的方式更改index.php文件。 – AlmostPitt
你知道我想到的第一件事是为所有路线添加一个前缀。我的意思是,如果你的Laravel处于自定义路径,通常情况就是这样。这里是我发现的关于本地化的链接不确定它是否与https://laracasts.com/discuss/channels/laravel/l5-localisation-routing相关 – xperator