pyvis icon indicating copy to clipboard operation
pyvis copied to clipboard

The js / css resources are not read from local drive but from cdn with cdn_resources="local"

Open fohrloop opened this issue 2 years ago • 2 comments

Using pyvis 0.3.2

Steps to reproduce:

# script.py
from pyvis.network import Network
nt = Network(
    cdn_resources="local",
)
nt.show('network.html', notebook=False)

The output draws content from

  • https://cdnjs.cloudflare.com/ajax/libs/vis-network/9.1.2/dist/dist/vis-network.min.css
  • https://cdnjs.cloudflare.com/ajax/libs/vis-network/9.1.2/dist/vis-network.min.js
  • https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css
  • https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js
niko@niko-ubuntu:~/tmp/pyvis_tests$ cat network.html | grep 'href=\"http\|src=\"http' -C 5
<html>
    <head>
        <meta charset="utf-8">
        
            <script src="lib/bindings/utils.js"></script>
            <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/vis-network/9.1.2/dist/dist/vis-network.min.css" integrity="sha512-WgxfT5LWjfszlPHXRmBWHkV2eceiWTOBvrKCNbdgDYTHrT2AeLCGbF4sZlZw3UMN3WtL0tGUoIAKsu8mllg/XA==" crossorigin="anonymous" referrerpolicy="no-referrer" />
            <script src="https://cdnjs.cloudflare.com/ajax/libs/vis-network/9.1.2/dist/vis-network.min.js" integrity="sha512-LnvoEWDFrqGHlHmDD2101OrLcbsfkrzoSpvtSQtxK3RMnRV0eOkhhBN2dXHKRrUU8p2DGRTk35n4O8nWSVe1mQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
            
        
<center>
<h1></h1>
</center>

<!-- <link rel="stylesheet" href="../node_modules/vis/dist/vis.min.css" type="text/css" />
<script type="text/javascript" src="../node_modules/vis/dist/vis.js"> </script>-->
        <link
          href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css"
          rel="stylesheet"
          integrity="sha384-eOJMYsd53ii+scO/bJGFsiCZc+5NDVN2yr8+0RDqr0Ql0h+rP48ckxlpbzKgwra6"
          crossorigin="anonymous"
        />
        <script
          src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"
          integrity="sha384-JEW9xMcG8R+pH31jmWH6WWP0WintQrMb4s7ZOdauHnUtxwoG2vI5DkLtS3qm9Ekf"
          crossorigin="anonymous"
        ></script>

Notes

Note that it pyvis actually copies these files under lib:

niko@niko-ubuntu:~/tmp/pyvis_tests$ python -m seedir 
pyvis_tests/
├─network.html
├─script.py
└─lib/
  ├─vis-9.1.2/
  │ ├─vis-network.min.js
  │ └─vis-network.css
  ├─bindings/
  │ └─utils.js
  └─tom-select/
    ├─tom-select.complete.min.js
    └─tom-select.css

The files are:

  • vis-network.min.js -- copied, but the HTML reads it from CDN
  • vis-network.css -- copied, but the HTML reads it from CDN
  • utils.js -- correct
  • tom-select.complete.min.js -- copied, but is it used?
  • tom-select.css -- copied, but is it used?
  • bootstrap.min.css -- missing! read from CDN.
  • bootstrap.bundle.min.js -- missing! read from CDN.

fohrloop avatar May 03 '23 06:05 fohrloop

Related PR: https://github.com/WestHealth/pyvis/pull/201

fohrloop avatar May 03 '23 07:05 fohrloop

Currently the output does not work without an internet connection. The browser debug tools show this:

image

fohrloop avatar May 03 '23 07:05 fohrloop