我正在使用Laravel 5.7。
我已经修改了.htaccess文件,以消除应用程序的公共路径。
问题在于,现在仅从具有一级路径(例如{http://localhost/myapp/home)的页面加载资产,而没有从具有多级例如(http://localhost/myapp/home/example/example2)的页面中加载资产。
我尝试使用laravel自己的函数,例如asset()
,URL::asset()
以及HTML::style()
助手,但没有一个能正确加载资产。
此外,我使用了以前项目中的.htacces文件的几个示例,但它们也都没有用。
Options -MultiViews -Indexes
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_URI} !(\.css|\.js|\.png|\.jpg|\.gif|robots\.txt)$[NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(css|js|images)/(.*)$ public/$1/$2 [L,NC]
如果您有任何问题并能够解决,我将不胜感激,请您提供指导或帮助。
问候同事。
答案 0 :(得分:0)
您不应更改laravel或.htaccess
文件中的任何目录结构。您应该这样做的方法是在laravel项目的public
文件夹和服务器中的public_html
文件夹之间建立符号链接。
恢复您所做的所有更改,只需像往常一样链接两个文件夹。
例如:
ln -s ~/nameOfProject/public public_html
这样,您就可以保持laravel项目原样,并且所有功能都将保持不变。另外,您还将获得使用git的好处。
PS
您将需要SSH访问,是的,这应该可以在“共享主机服务器”上正常运行。