我搜索了一个解决方案,但还没有找到。
我有一个Play应用程序,可以在Linux文件系统上上传图像文件。
图像已成功存储在public / images目录中。
在开发模式下,一切正常,因为每次重新加载时我的类路径都会更新,在生产环境中它不会更新,因此我必须再次上演该应用程序。 即时通讯使用阶段构建我的应用,并在生产模式下从target / universal / stage / bin文件夹启动它。
我尝试了一个自定义资产控制器,但结果是相同的。
public Result at(String path, String imageName) throws IOException {
File imageFile = new File(imageName);
byte[] byteArray = IOUtils.toByteArray(new FileInputStream(imageFile));
return ok(new ByteArrayInputStream(byteArray));
}
经过研究后,我的下一个想法是在nginx(端口81)上运行一个CDN,并在apache(端口80)上运行我的play应用,但我无法配置与apache正确连接的nginx。
<VirtualHost *:80>
ProxyPreserveHost On
ServerName localhost
ProxyPass /excluded !
ProxyPass / http://127.0.0.1:9000/
ProxyPassReverse / http://127.0.0.1:9000/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /excluded /var/www/assets
</VirtualHost>
我还尝试将/ excluded url映射到我的本地目录/ var / www / assets,但是我真的不知道这项工作是否如此
我可以使用wget localhost:81在/ var / www / assets中下载index.html。
我希望有人可以帮助我吗? Nginx中的CDN可以在ip:81上运行,而apache可以在ip:80上运行吗?如果是,我如何配置nginx?我可以为/排除的网址设置别名吗?还有其他方法可以在生产模式下的运行时管理动态资产或资产吗?
谢谢