我有第三方提供的HTML/JS/CSS文件(我无法控制),它作为单页面应用程序与使用Django和django-rest-framework构建的后端进行通信.
我想在Heroku上托管这个,因此这些静态资产由Django提供服务.这些文件包含彼此的相对路径.例如,index.html包含:
<link rel="stylesheet" type="text/css" media="screen" href="styles/css/bootstrap.min.css">
Run Code Online (Sandbox Code Playgroud)
这导致404因为styles/css/bootstrap.min.css没有被django路由.
我知道从我的域根目录提供index.html的唯一方法www.domain.com是使用url配置:
url(r'^$', TemplateView.as_view(template_name='index.html'), name='home'),
Run Code Online (Sandbox Code Playgroud)
...即使它不是真正的模板,它只是简单的HTML.
问题出在这样一个事实,即其他资产中的所有网址都与此相关index.html,当然Django不会那样工作.如果我正在开发这个前端应用程序,我将使用static模板标记和各种方法之一来获取javascript的URL.
如果他们提供这个问题的解决方案,我不介意从Heroku切换到另一个PaaS,但手动编辑所有这些文件听起来不是一个有趣的工作...特别是考虑到我将接收这些文件的更新这一事实往前走.
我认为在常规旧服务器上解决此问题的方法是配置Web服务器以正确解析这些URL,但Heroku上似乎没有该选项.