【问题标题】:Using Vuepress within a Laravel project在 Laravel 项目中使用 Vuepress
【发布时间】:2018-12-01 07:26:54
【问题描述】:

我实际上正在运行一个 Laravel 网站,我想在其中运行一个 Vuepress 文档部分。

感谢说明,安装 Vuepress 非常简单,开发服务器也是如此。

但是,在将其集成为静态站点时,我有点迷失与 Laravel 的交互。

我所有的文档都位于我的 Laravel 应用程序根目录下的 docs 文件夹中。

我设法设置了 Vuepress'config.js 以将静态站点构建到另一个文件夹中。

base: '/docs/',
dest:'./public/docs',

执行上述操作,将文档完全暴露给网络(在公共文件夹中)。

但是,我正在寻找的是在 Laravel 中更精确地集成它(使用我创建的中间件和路由)。

【问题讨论】:

    标签: laravel vuepress


    【解决方案1】:

    方法一

    1。在你的 laravel 目录中的/docs 中安装 vuepress

    2。使用正确的 basedest 配置 vuepress

    /docs/.vuepress/config.js

    module.exports = {
      dest: 'public/docs',
      base: 'docs/',
    };
    


    3。启用 laravel 视图以包含来自 /public 目录的文件

    /app/config/view.php

    ...
    'paths' => [
        resource_path('views'),
        base_path('public'), // now blade's @include will also look in /public
    ],
    ...
    


    4。为 vuepress 创建一个允许 .html 扩展的 laravel 路由

    /routes/web.php

    use View;
    Route::get('/docs', function() {
      View::addExtension('html', 'php'); // allows .html
      return view('docs.index'); // loads /public/docs/index.html
    });
    


    方法二

    或者通过 Laravel 对资产进行更多控制,你可以在这里尝试这个教程:https://serversideup.net/vuepress-within-a-laravel-application/

    【讨论】:

      【解决方案2】:
      # install as a local dependency
      yarn add -D vuepress # OR npm install -D vuepress
      
      # create a docs directory
      mkdir docs
      
      # create a markdown file
      echo '# Hello VuePress' > docs/README.md
      

      package.json

      {
        "scripts": {
          "docs:dev": "vuepress dev docs",
          "docs:build": "vuepress build docs"
        }
      }
      

      /docs/.vuepress/config.js

      module.exports = {
        dest: 'public/docs',
        base: '/docs/',
      };
      

      npm run docs:build

      /routes/web.php

      Route::get('/docs', function() {
          return File::get(public_path() . '/docs/index.html');
      });
      

      【讨论】:

      • 这里有点超出我的深度,但似乎这个答案与其他一些答案之间的区别在于,您将 Vuepress 安装在 Laravel 文件夹中,并且不创建另一个安装集(纱线, npm 等)在 docs 文件夹中。这看起来干净多了。不是 JS 开发人员/所以我在这里推断了很多,但是专家们怎么说?
      • 此外,这个答案大致基于 Vuepress 文档,请参见此处:vuepress.vuejs.org/guide/…
      猜你喜欢
      • 2020-09-28
      • 2021-02-07
      • 2017-04-21
      • 2016-11-28
      • 2018-01-30
      • 2019-02-10
      • 1970-01-01
      • 2019-12-16
      • 2020-05-10
      相关资源
      最近更新 更多