如何在Ubuntu 18.10服务器上部署使用ParcelJS构建的Web应用程序?

时间:2019-01-05 04:15:25

标签: nginx deployment web-deployment parceljs

我有一个使用某些CSS和TypeScript的HTML网页。我一直在使用ParcelJS开发服务器来构建和测试我的页面。

现在,我想通过Web服务器提供我的应用程序。我有一台设置了nginx的Ubuntu 18.10 DigitalOcean Dropt /虚拟机。

我将代码克隆到服务器上,安装了ParcelJS,并按照说明here运行了parcel build index.html

然后,我尝试通过创建从/var/www/mysitedomain/html/app.html~/myappdir/dist/index.html的符号链接来部署我的网页。

(某种)工作原理:当我访问我的网站时,我的浏览器将加载index.html。

但是,我的CSS都没有呈现,我的脚本似乎也没有运行!

很显然,我做错了什么。我应该怎么做才能部署我的应用程序?

这是我的摘要index.html(运行parcel build index.html之后):

<!DOCTYPE html>
<head>
  <title>Nothing to see here!</title>
  <link rel="stylesheet" href="/sidebar.04cc1813.css">
</head>
<body>
  <aside class="sidenav">
    <h1>A sidebar</h1>
  </aside>

  <section class="main">
    <p>Welcome to the semantic web!</p>
  </section>
  <script src="/main.9b45144c.js"></script>
</body>

这是我的/etc/nginx/sites-enabled/mysite.com

server {
        listen 80;
        listen [::]:80;

        root /var/www/mysite.com/html;
        index index.html index.htm index.nginx-debian.html app.html;

        server_name mysite.com www.mysite.com;

        location / {
                try_files $uri $uri/ =404;
        }  
}

1 个答案:

答案 0 :(得分:1)

在您的包裹命令中添加--public-url ./ CLI参数将告诉包裹发出相对于给定基本URL的资产URL引用。即您现有的:

<script src="/main.9b45144c.js"></script>

将变成:

<script src="./main.9b45144c.js"></script>

与CSS和其他资产相同...

另请参阅:https://parceljs.org/cli.html#set-the-public-url-to-serve-on