资产未引用公用文件夹(Laravel)

Gab*_*sto 9 php laravel

我在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)

前面的方法不是好方法.无论如何,如果有用于设置资产路径的配置,这将更容易.


Der*_*man 7

在你保存并成功地设置你的.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)

你需要哪一个你可以做到...

  • 对我来说 ASSET_URL=http://localhost/project_name/public 有效。ASSET_URL=public 或其他不生成完整路径,它从公共开始,如 public/assets/css/main.css。不包括应用程序网址/基本网址。为什么? (2认同)

Cod*_*ife 6

就我而言,.env我尝试过

ASSET_URL=public
Run Code Online (Sandbox Code Playgroud)

两侧斜杠和单独的,没有任何帮助以及所有相关的SO答案,然后打开我的旧项目并看到。这最终对我有用(当然,除了清除视图和缓存)

ASSET_URL="${APP_URL}"
Run Code Online (Sandbox Code Playgroud)

我正在谈论本地主机端