You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ngx-extended-pdf-viewer生产部署时加载viewer.ftl失败求助

ngx-extended-pdf-viewer部署后viewer.ftl 404问题排查与解决

问题概述

在Angular应用中使用ngx-extended-pdf-viewer展示PDF,本地运行完全正常,但部署到服务器后组件抛出大量错误,严重影响性能。通过浏览器开发者工具排查发现:组件请求的locale.json和P311N_file_name能正常获取,但viewer.ftl始终返回404 Not Found。

本地环境请求路径:http://localhost:4200/assets/locale/en-US/viewer.ftl(状态码304,正常)
部署环境请求路径:https://xyz.websites/assets/locale/en-US/viewer.ftl(状态码404,异常)

排查与解决步骤

1. 确认打包时文件被正确包含

打开项目根目录下的angular.json,找到build配置里的assets数组,确保包含了src/assets目录或者ngx-extended-pdf-viewer的assets资源。正确配置示例:

"assets": [
  "src/favicon.ico",
  "src/assets",
  {
    "glob": "**/*",
    "input": "node_modules/ngx-extended-pdf-viewer/assets",
    "output": "/assets/"
  }
]

配置完成后重新执行打包命令(比如ng build --prod),检查生成的dist目录下是否存在assets/locale/en-US/viewer.ftl文件。

2. 检查服务器端文件存在性与权限

登录部署服务器,找到应用静态文件的存放目录,确认assets/locale/en-US/viewer.ftl文件已上传,且文件权限设置为服务器可读取(比如Linux下设置为644权限)。

3. 调整服务器静态文件访问规则(以Nginx为例)

如果使用Nginx作为服务器,可能是服务器对.ftl后缀的文件有默认限制。修改Nginx配置文件,在对应location块中添加文件类型支持:

location /assets/ {
  root /path/to/your/app/dist;
  try_files $uri $uri/ =404;
  types {
    text/plain ftl;
  }
}

修改完成后重启Nginx服务,确保配置生效。

4. 手动指定组件资源路径(备选方案)

如果部署路径存在子目录(比如应用部署在https://xyz.websites/myapp/下),可在组件初始化时手动设置资源路径:

import { pdfDefaultOptions } from 'ngx-extended-pdf-viewer';

constructor() {
  // 根据实际部署路径调整,比如部署在子目录时设置为'/myapp/assets'
  pdfDefaultOptions.assetsFolder = '/assets';
}

内容的提问来源于stack exchange,提问作者Nikk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 12:14:58