有一些解決方案,如改變的index.php或接受一個與IOC容器。 Laravel 5 change public_path()
爲什麼比其他解決方案更好:
效果最好,在我看來,該解決方案,在這太問題描述?因爲它適用於普通的http請求,所以使用artisan並使用phpunit進行測試!例如。對index.php的更改僅適用於http請求,但在使用PHPunit時導致失敗(在我的情況下:文件(...)未在資產清單中定義)。
該溶液的簡短概括: 第1步:在文件:引導/改變app.php $應用變量的從第一聲明:
$app = new Illuminate\Foundation\Application(
realpath(__DIR__.'/../')
);
到:
$app = new App\Application(
realpath(__DIR__.'/../')
);
這指向您自己的自定義應用程序類,我們將在步驟2中創建它。
第2步:在應用程序文件夾中創建文件Application.php:
<?php namespace App;
class Application extends \Illuminate\Foundation\Application
{
public function publicPath()
{
return $this->basePath . '/../public_html';
}
}
請務必根據您的需求更改路徑。該示例假設的目錄結構如下所示:
°°laravel_app
°°°°應用
°°°°引導
°°°°配置
°°°°...
°°的public_html
在OP的情況下,路徑可能應該
return $this->basePath . '/../www/public';
(從laravel_app上來,然後下到www/public)
你能告訴我該把這段代碼放在哪裏嗎? – johnnydoe82
服務proivder是更好的方式來做到這一點,我認爲 – mcklayin
上面哪個文件代碼被放置,請發佈完整的解決方案 – Marwan