在服务器(共享托管)上,不显示公共文件夹中的所有资产。即。
<img src="{{asset($painting->file)}}" >
输出此
<img src="http://subdir.example.com/uploads/awJ4o8_miro1.jpg" >
它应该有一个公共文件夹
http://subdir.example.com/public/uploads/awJ4o8_miro1.jpg
在我的Public_html文件夹中,我有这个文件夹结构
PUBLIC_HTML
├───app
├───bootstrap
├───cgi-bin
├───config
├───database
├───public
│ ├───css
│ ├───img
│ ├───js
│ ├───uploads
│ └───videos
│ .htaccess(file)
│ .index.php(file)
├───resources
├───storage
└───tests
└ .htaccess(file)
.htaccess 文件就像这个文件
DirectoryIndex public/index.php
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ public/index.php [L]
</IfModule>
权限
所以我的问题是如何设置我的配置(.htaccess),以便我可以在共享托管网站上显示我的资产。
答案 0 :(得分:1)
您可以在最后一条规则上方插入此规则,将资源重定向到public/
:
DirectoryIndex public/index.php
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
RewriteRule ^uploads(/|$) /public%{REQUEST_URI} [L,NC,R=301,NE]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ public/index.php [L]
</IfModule>
答案 1 :(得分:1)
您可以使用public将资产网址加上前缀:
{{ asset('public/' . $painting->file) }}