1

そのため、ローカルの開発環境からサーバーにサイトをアップロードしました。しかし、問題があります。インデックス ページのみが読み込まれます。次のように、いくつかのコントローラーをさまざまなルートにマップしました。

//controller detection
Route::controller(Controller::detect());

//site routes
Route::get('/','site@index');
Route::get('about','site@about');
Route::get('blog','site@blog');
Route::get('downloads','site@downloads');
Route::get('products','site@products');
Route::get('shop','site@shop');

//admin routes
Route::get('login','admin@login');

//ajax functions
Route::get('loadnews/(:num)','ajax@loadnews');
Route::post('sendmessage','ajax@sendmessage');
Route::post('loadblog','ajax@loadblog');
Route::post('loadblogdetails','ajax@loadblogdetails');

Event::listen('404', function()
{
    return Response::error('404');
});

Event::listen('500', function()
{
    return Response::error('500');
});

Route::filter('before', function()
{
    // Do stuff before every request to your application...
});

Route::filter('after', function($response)
{
    // Do stuff after every request to your application...
});

Route::filter('csrf', function()
{
    if (Request::forged()) return Response::error('500');
});

Route::filter('auth', function()
{
    if (Auth::guest()) return Redirect::to('login');
});

そして、これらのルートを指すリンクをクリックすると、単純な Error: 324 (net::ERR_EMPTY_RESPONSE): from chrome が表示されます。

どうすればこれを修正できますか?

現在あるサイト: site

4

5 に答える 5

3

同様の問題が発生していたので、次の行を削除して解決しました。

Route::controller(Controller::detect());

名前付き URL を使用しています。試してみる。

于 2013-05-27T20:40:09.037 に答える
1

少なくとも私の側では、追加することでこの問題を修正できました。RewriteBase /.htaccess ファイルに。現在、すべてが適切に機能しているようです。

于 2013-05-24T13:12:44.270 に答える
0

Linux を使用しているようですが、これが同じ問題を抱えた将来の読者に当てはまる場合:

私にとっての問題は、Windows Server 2008 R2 でアプリを実行していて、IIS マネージャーで htaccess を適切に設定していなかったことです。他のサイトでは、htaccess ファイルは正常に機能していましたが、mod_rewrite を使用していないサイトがあったため、これを行う必要があることに気づきませんでした。

解決策は、「IIS URL Rewrite Module 2」をインストールすることでした。これは、IIS Manager から使用でき、Laravel に含まれるデフォルトの htaccess ファイルからすべてを「インポート」することを選択しました。

その後、インデックスだけでなく、すべてのページが読み込まれました。

于 2013-11-29T22:10:31.857 に答える
0

コントローラーを登録していない場合は、必ず登録してください。

Route::controller(array('site'));

サーバーでApacheを使用している場合はmod_rewrite、適切な.htaccessルールセットだけでなく、有効で構成されていることを確認してください。laravelには、.htaccessApacheサーバー用のかなり適切なルールが付属しています。

また、アプリケーション構成から「index.php」ベース URL を削除したことを確認してください。

これらはおそらく、ルートが機能しない最も一般的な理由です。このプロセスを少し簡単にするコマンドラインからルートをテストすることもできます。

php artisan route:call get about
于 2013-05-07T21:59:06.490 に答える
0

あなたの場合、ルートルートを配置する必要がありました:

Route::get('/','site@index'); 

routes.php ファイルの下部

于 2013-07-12T09:56:41.847 に答える