【发布时间】:2015-09-05 00:48:19
【问题描述】:
我正在为我的 laravel 5 项目中的错误寻找解决方案。我的项目在 public_html 文件夹中,所以我的项目运行良好,除了子文件夹中的图像。
这是我的项目结构:
- 根
- laravel
- public_html
- index.php
- 图片
- 用户
- default.jpg
- 用户
我有一个名为 workspace.blade.php 的主模板,在脚本标签中我有一个 js 变量来引用我的项目文件夹图像:
<!-- Scripts -->
<script type="text/javascript">
var Url = '{{ URL::asset('/'). Lang::getLocale() }}/';
var resourcesUrl = Url + 'resources/';
var imagesUrl = '{{ URL::asset('images') }}';
var jsUrl = '{{ URL::asset('js/') }}';
</script>
所以我在一个 EJS Javascript 模板中打印我的图像:
<img src="<%= imagesUrl + '/users/default.jpg' %>">
但浏览器控制台总是显示以下错误:
GET http://mydomain.com.co/users/default.jpg 404 (Not Found)
如果我尝试从“images/”文件夹加载图像,效果很好,但如果我尝试从“images/users/”等图像加载子文件夹内的图像,则不再有效。
我已经直接打印了网址,但什么也没发生。错误是laravel将url重定向到路由集合中的路由,并抛出路由错误。
我不知道我是否必须修改我的 .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]
谢谢你的帮助!
【问题讨论】:
-
此路径相关问题。图片的 URL 错误,因为您尝试从不存在的路由加载和图片
-
另请注意,您不能从公用文件夹访问资源文件夹。一种选择是将图像移动到公用文件夹,或者您可以通过使用图像包(如干预图像)动态生成图像来从资源文件夹加载图像
-
感谢 Digitlimit。路线存在。它根本无法在生产中运行,因此在开发中一切正常。我的图像不在资源文件夹中,因为我的 laravel 安装在根文件夹中。公共文件夹位于我服务器的 public_html 文件夹中。
-
如果它在开发服务器中工作,那么可能是 htacess 问题
标签: php image .htaccess laravel laravel-5