我在laravel项目中有公共文件夹,里面有一些js和css文件.
我正在使用资产功能,即使它引用了公共文件夹,我的文件也没有加载到页面上.
我正在使用此代码加载(这只是一个例子,还有更多文件):
<link href="{{ asset('css/style.css') }}" rel="stylesheet">
Run Code Online (Sandbox Code Playgroud)
在浏览器的控制台上,我正在做这样的事情:
无法加载资源:服务器响应状态为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和成功.
请帮助一点?
谢谢!
Bho*_*yar 13
我遇到了同样的问题.这是因为.htaccess文件从公共项目移动到项目的根目录,以便服务localhost/project而不是localhost/project/laravel.并且需要在资产中使用公共:
<link href="{{ asset('public/css/app.css') }}" rel="stylesheet">
Run Code Online (Sandbox Code Playgroud)
或者,从/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);
}
}
Run Code Online (Sandbox Code Playgroud)
前面的方法不是好方法.无论如何,如果有用于设置资产路径的配置,这将更容易.
在你保存并成功地设置你的.htaccess(像这样)之后,你的方法将按照你期望的那样工作:
<link href="{{ asset('css/style.css') }}" rel="stylesheet">
Run Code Online (Sandbox Code Playgroud)
请注意,在您设置.htaccess.
另请注意,看到更改后可能需要一段时间。缓存可能会干扰这些更改。因此,请确保清除 Laravel 缓存:
在 Shell 中单独运行以下命令:
php artisan cache:clear
php artisan route:cache
php artisan config:cache
php artisan view:clear
Run Code Online (Sandbox Code Playgroud)
并确保在浏览器设置中暂时禁用缓存:
在 Google Chrome 中:打开开发工具>打开网络选项卡> 选中“禁用缓存”。
其他浏览器:在线搜索如何操作。
小智 7
添加您的env:
ASSET_URL=public
Run Code Online (Sandbox Code Playgroud)
或者
ASSET_URL=public/
Run Code Online (Sandbox Code Playgroud)
或者
ASSET_URL=/public
Run Code Online (Sandbox Code Playgroud)
你需要哪一个你可以做到...
就我而言,.env我尝试过
ASSET_URL=public
Run Code Online (Sandbox Code Playgroud)
两侧斜杠和单独的,没有任何帮助以及所有相关的SO答案,然后打开我的旧项目并看到。这最终对我有用(当然,除了清除视图和缓存)
ASSET_URL="${APP_URL}"
Run Code Online (Sandbox Code Playgroud)
我正在谈论本地主机端
| 归档时间: |
|
| 查看次数: |
12986 次 |
| 最近记录: |