所以我在Laravel / MySQL开始了一个项目,在与一些经验丰富的开发人员交谈之后,Django / PostgreSQL可能是该应用程序的更好选择。
尽管是一个Django新手,我一直在将它转换为Django,而Laravel中有一个功能我没有在Django中看到我想知道如何实现。在Laravel中,它是Gulp
和Elixir
的组合,它管理Sass到CSS编译以及版本化CSS和JS文件。
在Laravel的gulpfile.js
中代码是这样的:
elixir((mix) => {
mix.sass('styles.scss')
.version(['css/app.css', 'js/app.js', 'css/styles.css', 'js/custom.js']);
});
然后将其读入Blade模板:
<!-- Styles -->
<link rel="stylesheet" href="{{ elixir('css/app.css') }}">
<link rel="stylesheet" href="{{ elixir('css/styles.css') }}">
<!-- Scripts -->
<script src="{{ elixir('js/app.js') }}"></script>
<script src="{{ elixir('js/custom.js') }}"></script>
我没有在Django中看到类似的功能,所以想知道如何实现它,因为它非常方便转向watch
然后拥有资产Sass-&gt; CSS和JS编译和版本化。
我确实看到了各种npm
个软件包:gulp
,gulp-django
,django-sass
等等。然后我会看到其他软件包,例如gulp-buster
或{ {1}}。如果这些软件包附带gulp-cache-bust
,除了gulp
之外需要下载,或者我只需要gulp
具体django
,我就不清楚}。
在这里想到某人会知道如何在Laravel中为gulp
/ Gulp
组合添加类似的功能。
答案 0 :(得分:1)
我使用django_assets。对于我的CSS和SASS文件,我使用了一个assets.py
文件,如下所示:
css_bundle = Bundle(
'scss/main.scss',
depends=('scss/**/*.scss',),
filters='pyscss,cssmin',
output='compiled/main.min.css'
)
register('css_bundle', css_bundle)
然后我可以在我的模板中包含这样的内容:
{% assets "css_bundle" %}
<link rel="stylesheet" href="{{ ASSET_URL }}"/>
{% endassets %}
缓存清理是内置的,你可以为JS文件做类似的事情。