哎呀!有一个错误。 NotFoundHttpException异常
Whoops! There was an error. NotFoundHttpException
我看到当资源名称包含加号 (+) 时 Laravel 无法获取资源
Symfony\Component\HttpKernel\Exception\NotFoundHttpException
GET http://localhost:8000/vendor/store/store+json2.min.js 404 (Not Found)
GET http://localhost:8000/vendor/animo/animate+animo.css 404 (Not Found)
REQUEST_URI /vendor/store/store+json2.min.js
REQUEST_METHOD GET
SCRIPT_NAME /vendor/store/store json2.min.js
REQUEST_URI /vendor/animo/animate+animo.css
REQUEST_METHOD GET
SCRIPT_NAME /vendor/animo/animate animo.css
我可以通过删除加号更改文件名来解决这个问题。但是有什么办法可以不改变文件名吗?
我正在使用 Laravel 4。*
路由文件中的内容如下:
Route::get('/', function()
{
return View::make('hello');
});
// Confide routes
Route::get('users/create', 'UsersController@create');
Route::get('users/create/{plan}', 'UsersController@create');
Route::post('users', 'UsersController@store');
Route::get('users/login', 'UsersController@login');
Route::post('users/login', 'UsersController@doLogin');
Route::get('users/confirm/{code}', 'UsersController@confirm');
Route::get('users/forgot_password', 'UsersController@forgotPassword');
Route::post('users/forgot_password', 'UsersController@doForgotPassword');
Route::get('users/reset_password/{token}', 'UsersController@resetPassword');
Route::post('users/reset_password', 'UsersController@doResetPassword');
Route::get('users/logout', 'UsersController@logout');
Route::resource('categories', 'CategoriesController');
Route::resource('forms', 'FormsController');
Route::resource('submissions', 'SubmissionsController');
实际问题是由于某种原因,两个重写条件:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
无法正确处理您的请求。他们应该防止文件请求被代理到 Laravel。这似乎也与环境有关。 (在我的本地服务器上它工作得很好)
一个显然有效的解决方法是用 URL 编码值 %2B
替换 +
。
或者只使用 urlencode():
urlencode('http://localhost:8000/vendor/store/store+json2.min.js')
我看到当资源名称包含加号 (+) 时 Laravel 无法获取资源
Symfony\Component\HttpKernel\Exception\NotFoundHttpException
GET http://localhost:8000/vendor/store/store+json2.min.js 404 (Not Found)
GET http://localhost:8000/vendor/animo/animate+animo.css 404 (Not Found)
REQUEST_URI /vendor/store/store+json2.min.js
REQUEST_METHOD GET
SCRIPT_NAME /vendor/store/store json2.min.js
REQUEST_URI /vendor/animo/animate+animo.css
REQUEST_METHOD GET
SCRIPT_NAME /vendor/animo/animate animo.css
我可以通过删除加号更改文件名来解决这个问题。但是有什么办法可以不改变文件名吗?
我正在使用 Laravel 4。*
路由文件中的内容如下:
Route::get('/', function()
{
return View::make('hello');
});
// Confide routes
Route::get('users/create', 'UsersController@create');
Route::get('users/create/{plan}', 'UsersController@create');
Route::post('users', 'UsersController@store');
Route::get('users/login', 'UsersController@login');
Route::post('users/login', 'UsersController@doLogin');
Route::get('users/confirm/{code}', 'UsersController@confirm');
Route::get('users/forgot_password', 'UsersController@forgotPassword');
Route::post('users/forgot_password', 'UsersController@doForgotPassword');
Route::get('users/reset_password/{token}', 'UsersController@resetPassword');
Route::post('users/reset_password', 'UsersController@doResetPassword');
Route::get('users/logout', 'UsersController@logout');
Route::resource('categories', 'CategoriesController');
Route::resource('forms', 'FormsController');
Route::resource('submissions', 'SubmissionsController');
实际问题是由于某种原因,两个重写条件:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
无法正确处理您的请求。他们应该防止文件请求被代理到 Laravel。这似乎也与环境有关。 (在我的本地服务器上它工作得很好)
一个显然有效的解决方法是用 URL 编码值 %2B
替换 +
。
或者只使用 urlencode():
urlencode('http://localhost:8000/vendor/store/store+json2.min.js')