我的laravel项目中有公共文件夹,里面有一些js和css文件。
我正在使用资产功能,即使它引用了公共文件夹,我的文件也没有加载到页面上。
我正在使用此代码加载(它只有一个例子,还有更多文件):
<link href="{{ asset('css/style.css') }}" rel="stylesheet">
在浏览器的控制台上,我发现了这样的事情:
无法加载资源:服务器响应状态为404(未找到) http://localhost:8000/css/style.css
好吧,我试图恢复最后一次提交,但没有成功。试图更改为URL :: asset()函数,没有。尝试了以下链接:http://laravel.io/forum/09-17-2014-problem-asset-not-point-to-public-folder?page=1和成功。
请帮助一点?
谢谢!
答案 0 :(得分:11)
我遇到了同样的问题。这是因为.htaccess文件从公共项目移动到项目的根目录,以便提供localhost/project
而不是localhost/project/laravel
。并且需要在资产中使用公共:
<link href="{{ asset('public/css/app.css') }}" rel="stylesheet">
或者,从/Illuminate/Foundation/helpers.php修改资产功能
if (! function_exists('asset')) {
/**
* Generate an asset path for the application.
*
* @param string $path
* @param bool $secure
* @return string
*/
function asset($path, $secure = null)
{
return app('url')->asset("public/".$path, $secure);
}
}
上述方法不是好方法。无论如何,如果有用于设置资产路径的配置,这将更容易。
答案 1 :(得分:3)
添加您的环境:
ASSET_URL =公共
或
ASSET_URL =公共/
或
ASSET_URL = /公共
您需要哪一个才能做到...
答案 2 :(得分:0)
<link href="{{ asset('/css/style.css') }}" rel="stylesheet">
试试这个
答案 3 :(得分:0)
试试这个
<link href="{{ asset('assets/css/style.css') }}" rel="stylesheet">
答案 4 :(得分:0)
保存并成功设置了.htaccess
(like this)之后,您的方法将按您认为有效的方式起作用:
<link href="{{ asset('css/style.css') }}" rel="stylesheet">
请注意,设置.htaccess
后,所有客户端网址请求(对图像,JavaScript / CSS文件,JSON的请求)都会受到重写规则的影响。
另外请注意,看到更改后可能需要一段时间。缓存可能会干扰这些更改。因此,请确保您清除了Laravel缓存:
在您的命令行管理程序中分别运行以下命令:
php artisan cache:clear
php artisan route:cache
php artisan config:cache
php artisan view:clear
并确保在浏览器设置中暂时禁用缓存:
在Google Chrome浏览器中:打开开发工具> 打开“网络”标签>选中“禁用缓存” 。
其他浏览器:在线搜索操作方法。
答案 5 :(得分:0)
在您的 .htaccess 文件中添加此内容
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*)$ /public/$1 [L,QSA]
它会解决你的问题。确定
答案 6 :(得分:0)
就我而言,.env
我尝试过
ASSET_URL=public
两边斜线和单独,没有任何帮助以及所有相关的SO答案,然后打开我的旧项目 看到了。这终于对我有用了(当然是在清除视图和缓存旁边)
ASSET_URL="${APP_URL}"
我在谈论本地主机端
答案 7 :(得分:-2)
并确保在浏览器设置中暂时禁用缓存:
在Google Chrome浏览器中:
Open Dev Tools > Open the Network tab > Check "Disable cache".
其他浏览器:在线搜索操作方法。
这对我有用。好像以前加载CSS和JS的内容在缓存中,直到发布之前,新的CSS和JS才加载