为了避免静态文件夹中引入许多未使用的文件,我使用
Gulp脚本复制所需的项目。在安装包后,我使用
NPM脚本来调用Gulp,以便不影响我的日常工作流程。
package.json
:
{
"dependencies": {
"bootstrap": "^4.3.1",
"gulp": "^4.0.2",
"jquery": "^3.4.1"
},
"scripts": {
"install": "gulp"
}
}
gulpfile.js
const { series, src, dest } = require('gulp');
function bootstrap() {
const files = [
'node_modules/bootstrap/dist/css/bootstrap.min.css',
'node_modules/bootstrap/dist/js/bootstrap.min.js'
]
return src(files).pipe(dest('_vendor'))
}
function jquery() {
const files = [
'node_modules/jquery/dist/jquery.min.js'
]
return src(files).pipe(dest('_vendor'))
}
exports.default = series(bootstrap, jquery)
my_project/settings.py
:
STATICFILES_DIRS = [
str(BASE_DIR / '_vendor'),
]
Django模板:
{% load staticfiles %}
<link rel="stylesheet" href="{% static 'bootstrap.min.css' %}" />
奖金
在Gulpfile中,您可以将文件连接和压缩成一个文件。以下是我使用Blueimp的文件上传库的Gulpfile示例:
const uglify = require('gulp-uglify');
const concat = require('gulp-concat');
function blueimp() {
const files = [
'node_modules/blueimp-file-upload/js/vendor/jquery.ui.widget.js',
'node_modules/blueimp-file-upload/js/jquery.iframe-transport.js',
'node_modules/blueimp-file-upload/js/jquery.fileupload.js'
]
return src(files).pipe(uglify())
.pipe(concat('jquery.fileupload.min.js'))
.pipe(dest('_vendor/'))
}