Laravel 查看在生产环境中工作但不在本地工作
Laravel view working in production but not locally
当我使用 XAMPP
在本地计算机上转到特定 url 时
在生产服务器中
本地请求没有可用的响应数据
还有其他页面使用与此页面相同的页眉和页脚,它们在本地和生产服务器中都可以正常加载。
编辑后的效果如下
/**
* Show the form for editing the specified resource.
*
* @param \App\OrganizationUser $org_user
* @return \Illuminate\Http\Response
*/
public function edit(Request $request, OrganizationUser $org_user, Organization $model1, User $model2)
{
// Check if user is admin
$auth_user = Auth::user();
$path = $request->path();
$organization_id = (int)explode('/', $path)[1];
$user_id = (int)explode('/', $path)[3];
//dd($org_user->load('user')->load('organization'));
if($auth_user->isAdmin()) {
return view('organizations.users.edit', [
'org_user' => $org_user->load('user')->load('organization')->where('id', $user_id)->first(),
'organizations' => $model1::where('id', $organization_id)->get(['id', 'name']),
'users' => $model2->get(['id', 'name'])
]);
} else {
abort(404);
}
}
到目前为止我尝试了什么
- 清除配置缓存
php artisan config:clear
- 正在清除路由缓存
php artisan route:clear
- 正在清除视图缓存
php artisan view:clear
- 正在清除事件缓存
php artisan event:clear
- 正在清除应用程序缓存
php artisan cache:clear
- 正在清除所有缓存
php artisan optimize:clear
- 正在清除 Composer 缓存中的内容
composer dump-autoload
- 正在清除 NPM 缓存
npm cache clean --force
使用不同的浏览器(在 Chrome 和 Firefox 中测试)。
通过 XAMPP 控制台重新启动 Apache。
重新启动计算机。
编辑
根据要求,这里是 /public 文件夹中的 .htaccess
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
试试这个,更改您的 htaccess 文件:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/ [L]
</IfModule>
我设法让它工作的方法是禁用 XAMPP 的 Apache 和 运行 而不是
php artisan serve
现在可以正常使用了
当我使用 XAMPP
在本地计算机上转到特定 url 时在生产服务器中
本地请求没有可用的响应数据
还有其他页面使用与此页面相同的页眉和页脚,它们在本地和生产服务器中都可以正常加载。
编辑后的效果如下
/**
* Show the form for editing the specified resource.
*
* @param \App\OrganizationUser $org_user
* @return \Illuminate\Http\Response
*/
public function edit(Request $request, OrganizationUser $org_user, Organization $model1, User $model2)
{
// Check if user is admin
$auth_user = Auth::user();
$path = $request->path();
$organization_id = (int)explode('/', $path)[1];
$user_id = (int)explode('/', $path)[3];
//dd($org_user->load('user')->load('organization'));
if($auth_user->isAdmin()) {
return view('organizations.users.edit', [
'org_user' => $org_user->load('user')->load('organization')->where('id', $user_id)->first(),
'organizations' => $model1::where('id', $organization_id)->get(['id', 'name']),
'users' => $model2->get(['id', 'name'])
]);
} else {
abort(404);
}
}
到目前为止我尝试了什么
- 清除配置缓存
php artisan config:clear
- 正在清除路由缓存
php artisan route:clear
- 正在清除视图缓存
php artisan view:clear
- 正在清除事件缓存
php artisan event:clear
- 正在清除应用程序缓存
php artisan cache:clear
- 正在清除所有缓存
php artisan optimize:clear
- 正在清除 Composer 缓存中的内容
composer dump-autoload
- 正在清除 NPM 缓存
npm cache clean --force
使用不同的浏览器(在 Chrome 和 Firefox 中测试)。
通过 XAMPP 控制台重新启动 Apache。
重新启动计算机。
编辑
根据要求,这里是 /public 文件夹中的 .htaccess
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
试试这个,更改您的 htaccess 文件:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/ [L]
</IfModule>
我设法让它工作的方法是禁用 XAMPP 的 Apache 和 运行 而不是
php artisan serve
现在可以正常使用了