I'm running XMosaic. Why can't I get external viewers working?

Answer provided by Ronald E. Daniel (rdaniel@acl.lanl.gov):

Mosaic only looks at the .mime.types file if it has no idea what the document's type is. This is actually a very rare situation. Essentially all servers now use the HTTP/1.0 protocol, which means that they tell Mosaic (or other browsers) what the document's MIME Content-type is. The servers use a file very much like Mosaic's .mime.types file to infer the Content-type from the filename's extension.

It is pretty simple to find out if this really is the problem. Use telnet to talk to the server and find out if it is assigning a MIME type to the document in question. Here's an example, looking at the home page for my server. (idaknow: is my shell prompt)

  idaknow: telnet www.acl.lanl.gov 80  // Connect to the httpd server
  Trying 128.165.148.3 ...
  Connected to www.acl.lanl.gov.
  Escape character is '^]'.
  HEAD /Home.html  HTTP/1.0             // replace Home.html  with your document
                                       // you supply the blank line
  HTTP/1.0 200 OK                      // the rest of this comes from the server  Date: Wednesday, 25-May-94 19:18:11 GMT
  Server: NCSA/1.1
  MIME-version: 1.0
  Content-type: text/html              // Here's the MIME Content-type
  Last-modified: Monday, 16-May-94 16:21:58 GMT
  Content-length: 1727

  Connection closed by foreign host.
  idaknow: 
In the example above, /Home.html will get http://www.acl.lanl.gov/Home.html .

Normally servers will be configured to supply a Content-type of text/plain if they don't know what else to do. If this is the problem you are having, take a look at the TypesConfig documentation for NCSA's httpd. You can have the server look at the filename extension, supply the correct Content-type, then use your local .mailcap file to tell Mosaic what viewer to use to look at the document.

Russ Segal adds:
The answer from Ronald Daniel is essentially correct, but it needs a small addendum.

When starting Moasic, you can specify a "fileProxy" which will fetch files for you:

"*fileProxy: http://socks/"

If you do this, file: URLs are no longer strictly local accesses. So even if the URL is not http:, the proxy server must be upgraded as Mr. Daniel suggests.


World Wide Web FAQ