Symfony 5:尝试使用 <a> 查看文件时找不到错误文件
Symfony 5: Error file not found when trying to view a file using <a>
在我的 public 文件夹中有一个 pdf 文件夹,里面有很多 pdf。我正在使用
<a href="/pdf/1.pdf" download="1.pdf"> 1</a>
因此,当任何人点击 1 时,他们将能够下载该文件。我什至尝试过使用资产来做,但发生的问题是我可以在本地主机上下载但不能在实际服务器上下载。它显示失败 - 没有文件。更多信息,我正在使用 Nginx。
server {
server_name xxx.xxx.com;
root /var/www/xxx.xxx.com/public;
index index.php;
location / {
try_files /index.php /index.php;
include snippets/fastcgi-notry-php.conf;
fastcgi_pass unix:/var/run/php/php-fpm.sock;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php-fpm.sock;
}
location ~ \.css {
add_header Content-Type text/css;
}
location ~ \.js {
add_header Content-Type application/x-javascript;
}
从您的配置中可以看出,.css 和 .js 文件扩展名存在例外情况,它们作为具有适当内容类型的静态文件提供。这就是为什么您可以看到所有样式和 js 代码的原因。很明显,您还必须在其中添加要用作静态文件的文件扩展名:
location ~ \.pdf {
add_header Content-Type application/pdf;
}
在我的 public 文件夹中有一个 pdf 文件夹,里面有很多 pdf。我正在使用
<a href="/pdf/1.pdf" download="1.pdf"> 1</a>
因此,当任何人点击 1 时,他们将能够下载该文件。我什至尝试过使用资产来做,但发生的问题是我可以在本地主机上下载但不能在实际服务器上下载。它显示失败 - 没有文件。更多信息,我正在使用 Nginx。
server {
server_name xxx.xxx.com;
root /var/www/xxx.xxx.com/public;
index index.php;
location / {
try_files /index.php /index.php;
include snippets/fastcgi-notry-php.conf;
fastcgi_pass unix:/var/run/php/php-fpm.sock;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php-fpm.sock;
}
location ~ \.css {
add_header Content-Type text/css;
}
location ~ \.js {
add_header Content-Type application/x-javascript;
}
从您的配置中可以看出,.css 和 .js 文件扩展名存在例外情况,它们作为具有适当内容类型的静态文件提供。这就是为什么您可以看到所有样式和 js 代码的原因。很明显,您还必须在其中添加要用作静态文件的文件扩展名:
location ~ \.pdf {
add_header Content-Type application/pdf;
}