manuels / texlive.js

Compiling LaTeX (TeX live) in your browser
http://manuels.github.com/texlive.js/
GNU General Public License v2.0
1.25k stars 139 forks source link

Getting ' Uncaught Error: No such file or directory' error on server #43

Closed fspataro-zz closed 8 years ago

fspataro-zz commented 8 years ago

Hi, This is a great library! I'm having a little trouble getting is working on my server. The page I've got setup works fine on my local dev machine but on the server I get the following error:

pdftex-worker.js:formatted:1713 Uncaught Error: No such file or directory lookup @ pdftex-worker.js:formatted:1713 lookup @ pdftex-worker.js:formatted:2857 Z @ pdftex-worker.js:formatted:2553 B @ pdftex-worker.js:formatted:2494 X @ pdftex-worker.js:formatted:2860 create @ pdftex-worker.js:formatted:2876 nd @ pdftex-worker.js:formatted:3538 nc @ pdftex-worker.js:formatted:3711 k.onload @ pdftex-worker.js:formatted:33 aa @ pdftex-worker.js:formatted:41 self.onmessage @ pdftex-worker.js:formatted:91

Watching the network trace, it downloads the texlive.lst file fine but no network requests are made after that. Running in Chrome, network tab doesn't show any request after the texlive.lst. I can also verify that in the webserver logs. So it seems like something goes wrong after that file download but before any of the other files are downloaded. Any thoughts?

Thanks Fred

zwaq commented 8 years ago

Hi,

Im having the same issue. What webserver do you use locally? I opened an issue just yesterday with this error regarding iis. ( https://github.com/manuels/texlive.js/issues/42 )

fspataro-zz commented 8 years ago

Hi zwaq, I saw your issue but it seemed like you we're getting further along in the dowloads than I do. I only get the two js and lst files. None of the others. It also works for me on the local dev box using IIS Express.

Do you get the same "no such file or directory error" message?

To get it to work in our visual studio project running on IIS Express, we did:

  1. Added web.config file to the folder with texlive.lst that allows the .lst ie:
  2. Added a web.config file to the texlive folder that allows everything ie:

1 and 2 can be combined in other ways but we we're trying to be explicit about what can do down the pipe.

3 We have the texlive library folder in our 'scripts' folder so in the constructor we set the path: var pdftex = new PDFTeX('Scripts/lib/latex-pdf/pdftex-worker.js');

fspataro-zz commented 8 years ago

Hi All, I've tracked down the issue. Our build/deploy process takes this library, adds it to our solution and then pushes it via git/bitbucket to our servers. It appears that in the git push/pull the line endings are getting converted from UNIX to PC. All works well if I use the original UNIX line ending files. I didn't try to debug exactly which file or what was causing the problem. My guess is that the PC line endings are causing the parse of the texlive.lst file to find "extra" lines and it thinks those are files to try to load...just a guess.

capture

fspataro-zz commented 8 years ago

Line 22 in pre.js (compiled into pdf-worker.js): var lines = this.response.split("\n");

if the config file gets converted to line endings “\r\n”, then this line generates a incorrect file list...

Keep the texlive.lst file with UNIX (lf) endings.