gpt4 book ai didi

php - Laravel 5 本地化 : exclude/public/directory

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:47:26 26 4
gpt4 key购买 nike

我正在尝试在我的 Laravel 5 项目中实现本地化,但遇到了问题。我放入的捕捉语言的中间件如下:

<?php namespace App\Http\Middleware;

use Closure;
use Illuminate\Routing\Redirector;
use Illuminate\Http\Request;
use Illuminate\Foundation\Application;
use Illuminate\Contracts\Routing\Middleware;

class Language implements Middleware {

public function __construct(Application $app, Redirector $redirector, Request $request) {
$this->app = $app;
$this->redirector = $redirector;
$this->request = $request;
}

/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
// Make sure current locale exists.
$locale = $request->segment(1);


if ( ! array_key_exists($locale, $this->app->config->get('app.locales'))) {
$segments = $request->segments();
$segments[0] = $this->app->config->get('app.fallback_locale');

return $this->redirector->to(implode('/', $segments));
}

$this->app->setLocale($locale);

return $next($request);
}

}

内核.php:

protected $middleware = [
'App\Http\Middleware\Language',
'Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode',
'Illuminate\Cookie\Middleware\EncryptCookies',
'Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse',
'Illuminate\Session\Middleware\StartSession',
'Illuminate\View\Middleware\ShareErrorsFromSession',
'App\Http\Middleware\VerifyCsrfToken',
];

路由服务提供者.php:

public function map(Router $router, Request $request)
{
$locale = $request->segment(1);

$this->app->setLocale($locale);

$router->group(['namespace' => $this->namespace, 'prefix' => $locale], function($router) {
require app_path('Http/routes.php');
});
}

除一件事外,它运行良好。当我尝试去 http://0.0.0.0/public/css/images/myimage.png它正在用 en 替换 public,如果我转到 /en/public,它会告诉我该路由不存在。

是否有助于从中排除公共(public)目录或以不涉及中间件的更好方式实现本地化?

最佳答案

您的图片必须在 public 文件夹下,public 文件夹必须是在 Apache 中配置的 public 文件夹。

您必须修复您的配置,以便您可以使用以下 URL 访问图像:http://0.0.0.0/css/images/myimage.png

当 public 是您配置的公用文件夹时,就会发生这种情况。

关于php - Laravel 5 本地化 : exclude/public/directory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29870658/

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