相关疑难解决方法(0)

如何使用在Heroku/OpenShift/etc上具有硬编码相对路径的django来提供静态文件?

我有第三方提供的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上似乎没有该选项.

django heroku paas

3
推荐指数
1
解决办法
1821
查看次数

标签 统计

django ×1

heroku ×1

paas ×1