I'm working to upgrade a site from 9.5.11 to 10.1.6. I followed the instructions provided here:


The upgrade went fine using composer, but when I visit the site after the upgrade I noticed that the site's theme isn't being loaded. The site is displayed as a long series of menus with content at the bottom of my browser window. I flushed all caches, still no luck. On a whim, I put the site back into maintenance mode, and suddenly everything looks fine again. The problem reappears if I bring the site out of maintenance mode.

I have full access to all menus while viewing the theme-less site, and I've tried switching themes, including trying to use the default Olivero theme, to see if that made a difference. It doesn't. Did I miss something with the upgrade? Can anyone help identify the problem?

  • What happens when you disable JavaScript and CSS aggregation?
    – mona lisa
    Commented Nov 3, 2023 at 23:05
  • Hmm, it works after disabling both JavaScript and CSS aggregation. Should those options not be used? Commented Nov 3, 2023 at 23:08
  • Yes they should be used. Back when Drupal 10.1 released it shipped with some changes to the front-end asset system—to aggregation specifically. This was a problem for some sites. What does the web browser console log? Look through the recent asset system issues: drupal.org/project/issues/…
    – mona lisa
    Commented Nov 4, 2023 at 2:32
  • Also read the release notes for recent versions.
    – mona lisa
    Commented Nov 4, 2023 at 2:45
  • Thanks for all the responses! Sure enough, the change to my nginx configuration was needed. the issue remained after that change though, and I saw multiple "too many redirects" errors in the browser console log. The fix described in drupal.org/project/drupal/issues/3368769 (comment #11) finally did the trick. Commented Nov 4, 2023 at 12:46

1 Answer 1


Drupal 10.1.x introduced CSS and JavaScript aggregation performance improvements in that there is change to .htaccess file as well.

Sites using nginx/php-fpm may need to update their nginx.conf file to pass through the css/js path to Drupal.


# Passes style generation to PHP.
location ~ ^/sites/.*/files/styles/ {
  try_files $uri @rewrite;


# Passes image style and asset generation to PHP.
location ~ ^/sites/.*/files/(css|js|styles)/ {
  try_files $uri @rewrite;

Refer Change Record for more details.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.