[SOLUÇÃO] OJS 3.5 PDF.JS Visualizador de PDF não funciona

Olá pessoal, hoje não vim pedir ajuda, mas compartilhar uma solução.

Recentemente atualizamos nosso sistema para o OJS 3.5 e o plugin PDF.JS Visualizador de PDF (PDF.JS PDF Viewer) parou de funcionar corretamente. O leitor ainda conseguia baixar o arquivo, mas não era possível visualizá-lo online.

A solução que funcionou para nós veio de uma discussão no fórum da PKP (não to conseguindo achar o link original. Deixo como resposta depois, quando eu achar).

Erro encontrado

O erro que aparece é semelhante a este:

Para verificar se você está enfrentando o mesmo problema:

  1. Abra a página de leitura do PDF.
  2. Pressione Ctrl + Shift + I para abrir o Inspecionar do navegador.
  3. Vá até a aba Console.

Se for o mesmo caso, aparecerá um erro semelhante a este:

Failed to load module script: Expected a JavaScript-or-Wasm module script but the server responded with a MIME type of "". Strict MIME type checking is enforced for module scripts per HTML spec.

Failed to load module script: Expected a JavaScript-or-Wasm module script but the server responded with a MIME type of "". Strict MIME type checking is enforced for module scripts per HTML spec.

Causa do problema

O problema parece estar relacionado ao MIME type para arquivos JavaScript (.mjs).

Solução

É necessário editar o arquivo .htaccess do OJS.

Esse arquivo está localizado na pasta raiz da instalação do sistema (a mesma onde está o config.inc.php).

O conteúdo padrão do .htaccess pode ser algo como:

# php -- BEGIN cPanel-generated handler, do not edit
# Defina o pacote “ea-php82” como a linguagem padrão de programação “PHP”.
<IfModule mime_module>
  AddHandler application/x-httpd-ea-php82___lsphp .php .php8 .phtml
</IfModule>
# php -- END cPanel-generated handler, do not edit

Adicione ao final do arquivo o seguinte código:

# Add. solution for PDF Viewer problem in OJS 3.5
<IfModule mod_mime.c>
    AddType text/javascript mjs 
</IfModule>

Obs.: Não é necessário apagar o código atual.

Após a alteração

  1. Salve o arquivo .htaccess.
  2. Recarregue a página onde o PDF é exibido.

Em muitos casos não é necessário reiniciar o servidor. Por exemplo, em hospedagens como Hostgator, a alteração passa a valer imediatamente.

Se tudo estiver correto, o PDF deverá voltar a aparecer no visualizador online. Recomendo testar em diferentes navegadores. Assim, você pode ter tranquilidade que está funcionando perfeitamente.

Informações adicionais

3 curtidas

Muito obrigado por compartilhar, @Adriano!

1 curtida