我刚刚开始在一个新项目中使用Laravel而且遇到了问题。
所以,我认为我已经为一个新项目做好了一切准备并开始研究它。在我的本地机器(Windows,运行WAMP)上一切都很好,我已经在个人VPS(Ubuntu,运行NGINX)上进行设置,这也很好。现在,我的雇主正在使用共享主机,而且访问权限非常有限。我有ftp访问权限,他可以访问cPanel上的一些东西。我已经尝试使用PhpStorm直接从我的本地项目部署到服务器。它似乎没问题,只是它是指向文件列表,但访问serverlink / public时似乎没问题。我已经要求我的雇主将文档根目录更改为/ public,并且一切都进入了下滑状态,因为我现在无法访问公共资源(css / images)。生成的链接是他们应该的例子:例如:serverlink / css / mycss.css,但文件返回404,这是相当奇怪的。
这是我的htaccess:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
在我的观点中,我使用刀片引用资产,如下所示:
<link href="{{ asset('css/button.css') }}" rel="stylesheet" type="text/css" >
尝试直接在浏览器中访问文件时得到的是
&#34;抱歉,找不到您要查找的页面。 RouteCollection.php第145行中的1/1 NotFoundHttpException:&#34;
任何人都可以帮助我吗?坚持这个,特别是因为它在我的vps上工作正常!我是否需要放弃Laravel 5,因为托管限制还是可以绕过它们?
干杯, 蒂亚戈C.
答案 0 :(得分:0)
添加此行index.php
$app->bind('path.public', function() {
return __DIR__;
});
将公共目录更改为主目录。
答案 1 :(得分:0)
事实证明,根目录上的.htaccess需要进行身份验证。不知何故,我想当根文件夹设置为public时,其他.htaccess阻止访问文件(因为没有询问auth)。我自编辑后将我的.htaccess(公开内部)改为:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteBase /public
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php?q=$1 [L,QSA]
</IfModule>
这也消除了&#34; index.php /&#34;或者类似于我的路线。
干杯!