@@ -8,6 +8,7 @@ var S = require('string')
88var async = require ( 'async' )
99var Negotiator = require ( 'negotiator' )
1010const url = require ( 'url' )
11+ const mime = require ( 'mime-types' )
1112
1213var debug = require ( 'debug' ) ( 'solid:get' )
1314var debugGlob = require ( 'debug' ) ( 'solid:glob' )
@@ -76,13 +77,20 @@ function handler (req, res, next) {
7677 }
7778
7879 // Handle fileBrowser and dataBrowser
79- if ( requestedType . indexOf ( 'text/html' ) === 0 ) {
80+ if ( requestedType && requestedType . includes ( 'text/html' ) ) {
8081 if ( container && ldp . fileBrowser ) {
8182 var address = req . protocol + '/' + req . get ( 'host' ) + req . originalUrl
8283 return res . redirect ( 303 , ldp . fileBrowser + address )
8384 }
8485
85- if ( RDFs . indexOf ( contentType ) >= 0 && ! ldp . suppressDataBrowser && ldp . dataBrowserPath ) {
86+ let mimeTypeByExt = mime . lookup ( _path . basename ( path ) )
87+ let isHtmlResource = mimeTypeByExt && mimeTypeByExt . includes ( 'html' )
88+ let useDataBrowser = RDFs . includes ( contentType ) &&
89+ ! isHtmlResource && // filter out .html which IS an RDF type, but does not use data browser
90+ ! ldp . suppressDataBrowser &&
91+ ldp . dataBrowserPath
92+
93+ if ( useDataBrowser ) {
8694 res . set ( 'Content-Type' , 'text/html' )
8795 var defaultDataBrowser = _path . join ( __dirname , '../../static/databrowser.html' )
8896 var dataBrowserPath = ldp . dataBrowserPath === 'default' ? defaultDataBrowser : ldp . dataBrowserPath
0 commit comments