jekyll-multiple-languages-plugin icon indicating copy to clipboard operation
jekyll-multiple-languages-plugin copied to clipboard

.htaccess cannot be included

Open Clpsplug opened this issue 3 years ago • 3 comments

This may be related to #47.

Summary

It seems that include: ['.htaccess'] in config.yml is negated by this plugin.

Environment

gem "jekyll", "~> 4.1.1"
group :jekyll_plugins do
  gem 'jekyll-multiple-languages-plugin'
end

Steps to reproduce

  1. Create a Jekyll website
  2. Add this plugin
  3. in config.yml, write include: ['.htaccess']
  4. Create .htaccess (its content doesn't really matter)
  5. Run jekyll serve or jekyll build

The BUG behavior

.htaccess file cannot be found anywhere in the _site directory.

The expected behavior

.htaccess file appears in the root of the _site directory.

Notes

We have this line in the current version (1.7.0:) https://github.com/kurtsson/jekyll-multiple-languages-plugin/commit/3d9d64ecce36c7d7ff95dd2bf2cbef2d5fe83980

which fixed #47. However, maybe because of this line, I'm not getting my .htaccess file to show up anywhere in the _site folder like it was not explicitly included outright.
The commit message says that this line should take effect after the pages for the base language are constructed (hence the expected behavior,) but it's not doing that.

Currently, I have to manually copy the .htaccess file, which is already causing deployment mistakes here and there. Issue #47 is for Jekyll 2.x, so it's possible that the internal working of Jekyll changed across major versions.

Clpsplug avatar Jan 21 '21 11:01 Clpsplug

I have the same issue. Last working version was 1.6.1

staffler-xyz avatar May 12 '21 12:05 staffler-xyz

I found a workaround. Use the keep_files directive in _config.yaml.
Usually, Jekyll wipes the _site directory (the output directory) clean before each build. This key will tell Jekyll to leave the specified files in the output-dir intact.

So you want to write this in your _config.yaml...:

keep_files:
  - .htaccess

...and either:

  1. put your .htaccess in your _site directory or
  2. put your .htaccess somewhere else, and symlink it to _site/.htaccess.

Clpsplug avatar Jul 05 '22 06:07 Clpsplug