6

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

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

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

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

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

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

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

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

4

2 回答 2

8

方法一

1./docs在你的laravel目录下安装vuepress

base2. 正确配置vuepressdest

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

于 2018-11-20T15:17:20.640 回答
3
# 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

包.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');
});
于 2019-02-21T16:07:57.707 回答