在 Laravel 项目中使用 Vuepress

Using Vuepress within a Laravel project

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

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

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

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

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

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

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

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

方法一

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 extension

的 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/

# 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');
});