url 和 laravel 上的路径帮助程序(当文档根目录已更改时)

url and paths helpers on laravel when document root has changed

我开始使用 laravel 框架 (v5.7)。我最近更改了我的文档根目录和虚拟主机如下(目的只是不在 url 上显示 "public"):

文档根目录:

DocumentRoot "${INSTALL_DIR}/www/laravel/public"
<Directory "${INSTALL_DIR}/www/laravel/public/">
    Options +Indexes +FollowSymLinks +Multiviews
    AllowOverride all
    Require local
</Directory>

虚拟主机:

<VirtualHost *:80>
  ServerName localhost
  ServerAlias localhost
  DocumentRoot "${INSTALL_DIR}/www/laravel/public"
  <Directory "${INSTALL_DIR}/www/laravel/public/">
    Options +Indexes +Includes +FollowSymLinks +MultiViews
    AllowOverride All
    Require local
  </Directory>
</VirtualHost>

完成后,我的 css 和 js 文件没有指向正确的位置(正常,我认为)。我查看了 laravel 文档,但我开始对在我的项目中为 css 和 js 文件生成 urls 的正确方法感到困惑。

Laravel 有不同的助手来生成 urls(例如 url() 和 asset())和其他助手指向文件夹(base_path( ), public_path(), resource_path()).

我还在 Google 上搜索了这个,我开始更加困惑,因为许多人使用资产助手生成 url 文件,这些文件位于 public 文件夹(不是资源文件夹)。

我的问题如下:

  1. 如果我的css和js文件位于public文件夹中(public/js和publiccss),这一旦文档根文件夹和虚拟主机更改了要查找的文件夹,生成这些 url 的正确方法是什么?

  2. 我应该使用资产助手还是 url 助手来生成它们?

  3. 我可以使用助手的组合来做吗? 例如:url(public_path('css/style.css'))

PD:我的 "own helpers" 给你: 在这两种情况下,asset() 和 url() 打印相同的内容:

看起来像

asset('css/style.css')

是正确的做法。