code: func (f *Files) openFallback(filename string) (http.File, error) {
  	if f.DirFallback == "" {
  		return nil, os.ErrNotExist
  	}
  	of, err := os.Open(filepath.Join(f.DirFallback, filename))
  	switch {
  	case err != nil:
  		return nil, err
  	case f.SlurpToMemory:
  		defer of.Close()
  		bs, err := ioutil.ReadAll(of)
  		if err != nil {
  			return nil, err
  		}
  		fi, err := of.Stat()
  
  		sf := &staticFile{
  			name:     filename,
  			contents: bs,
  			modtime:  fi.ModTime(),
  		}
  		f.add(filename, sf)
  		return &fileHandle{sf: sf}, nil
  	}
  	return of, nil
  }
docs: // f.lk is held