首页 > 解决方案 > 使用 webpack-quasar 在 Django 服务器中共享静态文件

问题描述

我已经用 Django 作为后端和 quasar 作为前端做了一个项目。我想在 Django 服务器中发布项目的 quasar-frontend 端。因此,我使用 webpack 在 quasar 上构建了生产环境,并获得了包含生产文件(如 CSS、js)的必要文件夹。由于 Django 框架结构,我将它们分成静态文件和 index.html。Django 服务器与额外的文件夹共享静态文件,例如:'/static/somenestedfolder/'。所以当django服务器将index.html文件分享给客户端时,客户端无法获取到静态js和css文件,报错404 not found。比如客户端请求地址获取一些js文件:http://127.XX.XX.XX:8000/js/some.js,但是静态文件位于http://127.XX.XX .XX:8000/static/js/some.js. 所以,我只想在 webpack 构建生产文件时添加“/static”(或一些嵌套文件夹)。

或者 shared-static-files 方法不正确: a) 我应该使用 python webpack-loader 模块吗?b) 有什么方法可以做到吗?c) 我也可以在 Django 的生产模式下使用它吗?

标签: pythondjangowebpackquasar

解决方案


我通过在 app.js 文件中的两个位置添加“static/somenestedfolder/”手动完成:function s(e){return c.p+"static/spa/js/"+({}[e]||e)+"."+{1:"8855391b",3:"aef3bbdb",4:"e185e379",5:"6e19df14",6:"a2e4728f",7:"1596d43e",8:"d93f7b24",9:"7156fd72"}[e]+".js"}在返回 js 文件列表的e=function(e){var t=[],a={1:1,3:1};r[e]?t.push(r[e]):0!==r[e]&&a[e]&&t.push(r[e]=new Promise((function(t,a){for(var n="static/spa/css/"+({}[e]||e)+"."+{1:"4ea14588",3:"534f7efb",4:"31d6cfe0",5:"31d6cfe0",6:"31d6cfe0",7:"31d6cfe0",8:"31d6cfe0",9:"31d6cfe0"}[e]+".css" // some code....函数中和返回 css 文件列表的函数中。它对我有用。如果还有其他更好的解决方案,请分享给我。我认为这不是一个好的解决方案。


推荐阅读