Hugo

Empty CSS files generated through asset pipeline

Problem:

I have a Hugo site with pretty standard setup. It uses asset pipeline to process SASS. It imports bootstrap, font-awesome, and also uses resources.ExecuteAsTemplate (please do check out main.css file). CSS resources are being generated properly (I checked resources/_gen/assets/scss/sass) but the .css file in public directory is an empty file. I am not able to find any problems in the code. See the code here, site here. I tried creating a new project with same head.html file and .scss files, and it generated CSS resources, and had them in the public directory properly.

Additional info:

  1. Related files:
    head.html
    main.scss

  2. Currently, I am not using PostCSS; just have the config file created. Would be replacing minify with postCSS on line 13 in head.html once empty .css file problem is solved.

  3. Output of hugo version:
    Hugo Static Site Generator v0.57.2-A849CB2D/extended linux/amd64 BuildDate: 2019-08-17T17:57:54Z

I would gladly provide any additional information if required. Please help!

1 Like

In the head.html file, link tag is:
<link rel="stylesheet" integrity="{{ $css.Data.Integrity }}" href="{{ $css.Permalink }}">
Changing the link tag with following:
<link rel="stylesheet" href="{{ $css.Permalink }}" integrity="{{ $css.Data.Integrity }}">
fixes the issue.

It seems that Hugo requires user to first call .Permalink of the asset and then only other related functions or variables (quite logical actually). Maybe it is better if this fact is explicitly stated in the docs, here and here. I wouldn’t mind opening a PR to docs if it is alright. Thoughts?

Hi,

It actually does say in the docs: https://gohugo.io/hugo-pipes/introduction/#asset-publishing

Assets will only be published (to /public ) if .Permalink or .RelPermalink is used.

This ordering issue smells like a bug; I’m pretty sure this is not an issue in the latest source, but I will make sure to add a test for it:

1 Like

@pointyfar I understand. I think one wouldn’t expect asset to be published when .Permalink is not used, but also, one might not expect assets generated to be empty files because of order in which .Permalink and .Data.Integrity is used.

@bep appreciate your efforts :+1: