【问题标题】:Requests in subdirectory of document root return 404文档根目录下的请求返回 404
【发布时间】:2018-11-09 19:09:00
【问题描述】:

我已将我的 apache 虚拟主机配置文件的文档根目录设置为 laravel 的公共目录。我有一个内置到 public/dashboard-dist 目录中的 angular 4 应用程序。我已将此目录添加为搜索视图 config/view.php 的位置,如下所示:

'paths' => [
    resource_path('views'),
    public_path('dashboard-dist'),
],

成功登录后,我可以将用户重定向到此目录中的dashboard-index.php。但是此文件中的所有资产链接(js、css 等)都无法加载并返回 404。例如 bootstrap.min.css 来自:

http://localhost/assets/css/bootstrap.min.css (404)

当我将此文件的 href 属性更改为:

<link href="/dashboard-dist/assets/css/bootstrap.min.css" rel="stylesheet" />

我得到一个 200 并且文件被加载。但我不想更改这个 Angular 4 应用程序中的所有 URL,而是有一个服务器配置来将子目录文档根设置为自身。我更喜欢在公共目录中使用 .htaccess 来执行此操作,因此当我将站点上传到真实服务器时,它会开箱即用。我怎样才能做到这一点?

【问题讨论】:

    标签: php angular laravel apache document-root


    【解决方案1】:

    此类问题的最佳解决方案是运行:

    ng build --base-href /dashboard-dist/ 
    

    构建 Angular 应用程序。这将添加

    <base href="/dashboard-dist/">
    

    到构建的dashboard-index.php,所有资产链接将从现在开始工作。

    【讨论】:

      猜你喜欢
      • 2022-11-30
      • 2017-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-09
      相关资源
      最近更新 更多