Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Nginx 如何将delpoy Vue项目投入生产?_Nginx_Vue.js_Deployment_Web Deployment - Fatal编程技术网

Nginx 如何将delpoy Vue项目投入生产?

Nginx 如何将delpoy Vue项目投入生产?,nginx,vue.js,deployment,web-deployment,Nginx,Vue.js,Deployment,Web Deployment,使用Ubuntu16.04和Nginx,我试图将一个Vue项目部署到生产环境中,但却一直在白墙上运行 我将我的项目克隆到 /var/www/html/maak-web/maak_web/ 使用npm install安装所有需要的依赖项,并运行以下生成脚本: node build/build.js 这启动了生产构建,该构建成功并部署了项目 在我的nginx默认配置中,我将根目录更改为指向正确的文件夹,如下所示: root /var/www/html/maak-web/maak_web; 当我

使用Ubuntu16.04和Nginx,我试图将一个Vue项目部署到生产环境中,但却一直在白墙上运行

我将我的项目克隆到

/var/www/html/maak-web/maak_web/
使用
npm install
安装所有需要的依赖项,并运行以下生成脚本:

node build/build.js
这启动了
生产构建
,该构建成功并部署了项目

在我的nginx默认配置中,我将根目录更改为指向正确的文件夹,如下所示:

root /var/www/html/maak-web/maak_web;
当我现在访问我的域/IP时,我看到项目加载(例如favicon和站点名称加载),并且我可以从这里访问我的
静态
文件:

Vue项目似乎可以工作,但问题是它实际上不显示任何内容,并且访问子视图,如
/oneview
/anotherview
会抛出404页面未找到错误

由于Vue似乎没有抛出任何错误,我怀疑这是nginx配置问题

解决方案是将产品构建到/dist/文件夹中,并仅发布/dist/文件夹内容。一旦我将内容复制到/www/html/上,它就工作得很好

看到这是一个错误,没有将正确的文件放入输出文件夹,我建议您更新
config/index.js
文件,通过为
build
对象设置
index
assetroot
来包含正确的生产位置

  build: {

    // Template for index.html
    index: path.resolve(__dirname, '../../srv/www/index.html'),

    // Paths
    assetsRoot: path.resolve(__dirname, '../../srv/www'),
    assetsSubDirectory: 'static',
    assetsPublicPath: '/',
    ...

构建脚本是否创建了index.html?ngi x是否配置用于拾取index.hrml文件的站点块?它创建了“dist”文件夹和index.html。你所说的“nginx是否通过拾取index.html来阻止站点?”是什么意思?你是否使用了Vue路由器,然后模式是历史?如果你访问
#/anotherview
而不是
/anotherview
,会发生什么?谢谢@Daniel,我似乎完全没有抓住要点。解决方案是将产品构建到/dist/文件夹中,并仅发布/dist/文件夹内容。一旦我将内容复制到/www/html/上,它就工作得很好。