在我的服务器块中我有
def default_data_type_as_string
@xlsx_package = Axlsx::Package.new
@workbook = @xlsx_package.workbook
@worksheet = @workbook.add_worksheet(:name => "Introduction")
default_style = @workbook.styles.add_style({ format_code: '@' })
row_data_array = ['1', '2%', '3$']
@worksheet.add_row row_data_array, :style => [nil, default_style, nil]
@xlsx_package.serialize('default_data_type_as_string.xlsx')
end
如果删除内部位置块,我可以访问APK文件(以及所有其他文件)。
添加块后,任何.apk文件都会返回404.如何为APK文件添加标题?
注意:其他文件类型的内容类型由附带的mime.types很好地处理,但即使我按照How to download ".apk" as ".apk"? (not as ".zip")和https://blog.mypapit.net/2015/08/how-to-set-apk-mime-type-for-nginx-web-server.html所述添加APK文件的行,它也仅返回内容 - apk文件的文本类型/ html。
答案 0 :(得分:0)
你还需要在apk块中拥有proxy_pass。 Nginx不像编程语言那样工作,因此您不会从父块执行任何操作。
还用于使用default_type
指令
location / {
proxy_pass http://echocdn;
include /etc/nginx/mime.types;
#proxy_pass http://127.0.0.1:8082;
add_header Cache-Control "max-age=31536000, private, no-transform, no-cache";
location ~* \.apk$ {
default_type application/vnd.android.package-archive;
add_header Content-Type application/vnd.android.package-archive;
add_header Content-Disposition "attachment";
proxy_pass http://echocdn;
}
}
您甚至可以使用if
处理此问题 location / {
proxy_pass http://echocdn;
include /etc/nginx/mime.types;
#proxy_pass http://127.0.0.1:8082;
add_header Cache-Control "max-age=31536000, private, no-transform, no-cache";
if ($request_uri ~* \.apk$) {
default_type application/vnd.android.package-archive;
add_header Content-Type application/vnd.android.package-archive;
add_header Content-Disposition "attachment";
}
}
答案 1 :(得分:0)
也许最好不要直接设置标题,因为这会导致双重内容类型。
但是如果您在location-block类型中声明它,它也可以正常工作。
看看:
location ~* \.apk$ {
types {
application/vnd.android.package-archive apk;
}
add_header Content-Disposition "attachment";
}
答案 2 :(得分:0)
尝试一下:
chmod +x chromedriver_linux64
/ tmp / app是您的APK文件的完整路径。