SparkJava将为使用CRA构建的React应用提供服务

时间:2018-07-04 04:19:45

标签: jetty create-react-app spark-java

正在寻求帮助,以了解如何部署使用Create-react-app构建的javascript应用。

我似乎无法配置SparkJava(通过内置Jetty)以服务通过Create-react-app构建的静态页面。

更新 我只需删除index.html就可以从SparkJava / Jetty提供静态页面 (例如。: https://myipaddress:4567 )  从我的网址请求中。但是,我不知道为什么会这样,并且没有一个好的答案。因此,让问题悬而未决

当我转到https://myipaddress:4567/index.html时-我得到空白页,其标题和图标为正确的(表示已提供index.html)。 但是,由于未显示任何其他内容,因此我假设Js捆绑包脚本未得到正确的服务或处理。

但是,我看不到我在做什么错。 当从webpack的内置开发服务器提供服务时,js应用程序可以正常工作(使用npm run start运行时)。从'serve'软件包(这是一个专用的Node静态页面服务器...我正在运行npm -s build,对于http来说工作正常)时,它也可以工作

sparkjava / jetty服务器似乎以正确的大小将index.html,main.css和main js包返回给Web浏览器。 没有网络错误。没有JavaScript错误。 没有核心问题...基本上没有任何问题的迹象。 我在使用sparkjava时使用https(该设置运行良好,因为同一后端用于json api服务)。 但是页面上的内容没有显示... 就像Je​​tty服务时,React并未在初始化自己。但是我看不到这是怎么可能的。 因此,希望有人能提供帮助。

以下是前端的步骤(事物的现实面)

0) create react app using npx create-react-app   myapp1
2) cd myapp1 ;  npm install  (this is, of course, needs to be done once just to install npm modules

3) npm run build  (this produced production optimized build into myapp1/build directory)

4) cp -r ./build/*  /tmp/myapp1

5) note that the generated build has 
 manifest.json already configured

这是我在后端执行的步骤。使用SparkJava项目。

1)编辑Application.java以允许服务/ tmp / myapp1格式的文件 (其余内容与任何SparkJava设置相同)。

    // Configure Spark
    port(4567);

    staticFiles.location("/public");
    staticFiles.expireTime(600L);
 staticFiles.externalLocation(System.getProperty("java.io.tmpdir")+"/myapp1");

SparkJava应用程序的build.gradle使用此版本的SparkJava

   compile group: 'com.sparkjava', name: 'spark-core', version: '2.7.2'
    compile group: 'com.sparkjava', name: 'spark-debug-tools', version: '0.5'
    compile group: 'com.sparkjava', name: 'spark-template-velocity', version: '2.7.1'
    compile group: 'com.sparkjava', name: 'spark-template-mustache', version: '2.7.1'

SparkJava中嵌入的Jetty版本是9.3.z-shapshot

在Linux 64上运行(但我确定该问题与底层操作系统无关)。

0 个答案:

没有答案