Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

In our example, our webapp is hosted at /otherfolder and we decided to host DatafariUI on a page under /otherfolder/testdatafariui .

2- Prepare DatafariUI for the build

...

You need to copy the folders images, locales and static from this build folder so that they can be accessed from the previously chosen root path for DatafariUI, in my case:

To build the production ready version of the app go to root folder of the project and run:

Code Block
scp -r build/images build/locales build/static myuser@myserver:/var/www/html/testdatafariui

...

You will need to perform two things:

  1. Include the necessary scripts and css into the page

  2. Add a div with the id “root” to your page

Including required scripts and css

Open the index.html file from the build folder (build/index.html) of the datafariui project (the file content is written on one line, you can reformat it to help you copy the required elements). From there, identify and copy the 3 scripts elements at the end of the body and add them to the end of the body of your page. They should look something like the following:

...

For reference, here is look at my html page, which is /var/www/html/testdatafariui/index.html html in my case (I integrated DatafariUI into the default index page of the ubuntu installation of apache2 here, and enlarged the main div to 90% of the width of the page to have a proper render of the UI):

...

The installation is now finished and you should be able to access DatafariUI from the page hosting it:

...

...

Advanced usage 1: Modifying the id required for the div

Before building the datafariui project, you can edit the src/index.js file. Within it there is this block of code:

...

Change root to the id you want to use for the div and follow the rest of the procedure.

...

Advanced usage 2: The page hosting DatafariUI is a react app or it uses the WebPack runtime

DatafariUI is bootstrapped using create-react-app. The app is using the webpack runtime with the default configuration. If your application does the same, there will be a clash of names and only one application will be able to load on the page at any given time. To fix that, follow the information of this blog post: https://medium.jonasbandi.net/hosting-multiple-react-applications-on-the-same-document-c887df1a1fcd

View file
namehosting-multiple-react-applications-on-the.pdf
to redefine the name of the webpack runtime for one of the application and you should be good to go.