Sitepackage stuff not loading after upgrade to 4.0

Hey! :wave:

I mirrored the database and files in another subdomain, everything worked and looked fine.

So I started the upgrade as described here.
No error-messages anywhere BUT its not loading anything from (by example)

<f:section name="stylesheets">
 [...]
<link rel="stylesheet" href="{f:uri.resource(path: 'Styles/main.min.css', package: 'hkm.schulcloud')}" />
[...]
</f:section>

So i have all the content from NEOS CMS, but all Styles, metadata and scripts are missing.

As you can see here, Ressources i used in the backend are loading, but the files I define in /Templates/Page/Default.hml are missing.

Did I miss something in the upgrade-process?

screenshot of actual page

Did you change the domain name in the domain record (Site Management) since you moved to a new subdomain ?

Yes, I did

What is in the generated HTML? Nothing or some unparsed Fluid or …?

Nothing. Just the output i showed in the screenshot. Everything else is missing. :disappointed_relieved:

I had that when my Fusion files still had the file extension .ts2 instead of .fusion.
Might be only stupid me but maybe another one also stumbles accross this :wink:

Thank you, but it is ( my first, but ) a brand new project, so my root.fusion is a .fusion file… :frowning_face:

After exporting the package and import it in a fresh Neos 4.0 installation, i have the same issue. So there is something wrong with my package, but i dont know what and where to look first…

Is the site package public avaiable somewhere for us to see?

Might be related to the document rendering refactoring in 4.0.
Do you have any Fusion prototypes which have the same name as your document nodetypes?

i read the changes again and found one error but it leads to the next one :sweat:

i had to change
page = Neos.Neos:Page {

to

prototype(Neos.NodeTypes:Page) < prototype(Neos.Neos:Page) {

right?

Because i had a prototype(Neos.NodeTypes:Page) already i merged it, but i’m using a condition for formBuilderStyles.
I’m having two forms and for each form i need a different js-file in <head>.

An exception was thrown while Neos tried to render your page
Catchable Fatal Error: Object of class Neos\Fusion\FusionObjects\Helpers\FusionPathProxy could not be converted to string in /html/neos-schulcloud-mirror/Data/Temporary/Development/Cache/Code/Fluid_TemplateCache/Frontend_Node_action_show_8110cb6b3bf52dc6546969f42df1ef85c1fe5eeb.php line 909

rootNeos.Fusion:Case/
documentTypeNeos.Fusion:Matcher/
elementNeos.NodeTypes:Page/
bodyNeos.Fusion:Template/

For a full stacktrace, open Data/Logs/Exceptions/20180612090733a3e211.txt

full stacktrace here
Exception #1 in line 909 of /html/neos-schulcloud-mirror/Data/Temporary/Development/Cache/Code/Fluid_TemplateCache/Frontend_Node_action_show_8110cb6b3bf52dc6546969f42df1ef85c1fe5eeb.php: Catchable Fatal Error: Object of class Neos\Fusion\FusionObjects\Helpers\FusionPathProxy could not be converted to string in /html/neos-schulcloud-mirror/Data/Temporary/Development/Cache/Code/Fluid_TemplateCache/Frontend_Node_action_show_8110cb6b3bf52dc6546969f42df1ef85c1fe5eeb.php line 909

33 Neos\Flow\Error\ErrorHandler::handleError(4096, "Object of class Neos\Fusion\FusionObjects\Helpers\FusionPathProxy could not be converted to string", "/html/neos-schulcloud-mirror/Data/Temporary/Develo…_show_8110cb6b3bf52dc6546969f42df1ef85c1fe5eeb.php", 909, array|5|)
32 Frontend_Node_action_show_8110cb6b3bf52dc6546969f42df1ef85c1fe5eeb::section_02083f4579e08a612425c0c1a17ee47add783b94(Neos\FluidAdaptor\Core\Rendering\RenderingContext)
31 TYPO3Fluid\Fluid\View\AbstractTemplateView::renderSection("body", array|7|, FALSE)
30 Neos\FluidAdaptor\View\AbstractTemplateView::renderSection("body")
29 Neos\Fusion\FusionObjects\TemplateImplementation_Original::evaluate()
28 Neos\Fusion\Core\Runtime_Original::evaluateObjectOrRetrieveFromCache(Neos\Fusion\FusionObjects\TemplateImplementation, "root<Neos.Fusion:Case>/documentType<Neos.Fusion:Matcher>/element<Neos.NodeTypes:Page>/body", array|11|, array|5|)
27 Neos\Fusion\Core\Runtime_Original::evaluateInternal("root<Neos.Fusion:Case>/documentType<Neos.Fusion:Matcher>/element<Neos.NodeTypes:Page>/body", "NULL", Neos\Fusion\FusionObjects\ArrayImplementation)
26 Neos\Fusion\Core\Runtime_Original::evaluate("root<Neos.Fusion:Case>/documentType<Neos.Fusion:Matcher>/element<Neos.NodeTypes:Page>/body", Neos\Fusion\FusionObjects\ArrayImplementation)
25 Neos\Fusion\FusionObjects\AbstractFusionObject::fusionValue("body")
24 Neos\Fusion\FusionObjects\ArrayImplementation_Original::evaluate()
23 Neos\Fusion\Core\Runtime_Original::evaluateObjectOrRetrieveFromCache(Neos\Fusion\FusionObjects\ArrayImplementation, "root<Neos.Fusion:Case>/documentType<Neos.Fusion:Matcher>/element<Neos.NodeTypes:Page>", array|23|, array|6|)
22 Neos\Fusion\Core\Runtime_Original::evaluateInternal("root<Neos.Fusion:Case>/documentType<Neos.Fusion:Matcher>/element<Neos.NodeTypes:Page>", "Exception")
21 Neos\Fusion\Core\Runtime_Original::render("root<Neos.Fusion:Case>/documentType<Neos.Fusion:Matcher>/element<Neos.NodeTypes:Page>")
20 Neos\Fusion\FusionObjects\RendererImplementation_Original::evaluate()
19 Neos\Fusion\FusionObjects\MatcherImplementation_Original::evaluate()
18 Neos\Fusion\Core\Runtime_Original::evaluateObjectOrRetrieveFromCache(Neos\Fusion\FusionObjects\MatcherImplementation, "root<Neos.Fusion:Case>/documentType<Neos.Fusion:Matcher>", array|4|, array|5|)
17 Neos\Fusion\Core\Runtime_Original::evaluateInternal("root<Neos.Fusion:Case>/documentType<Neos.Fusion:Matcher>", "Exception")
16 Neos\Fusion\Core\Runtime_Original::render("root<Neos.Fusion:Case>/documentType<Neos.Fusion:Matcher>")
15 Neos\Fusion\FusionObjects\CaseImplementation_Original::renderMatcher("documentType")
14 Neos\Fusion\FusionObjects\CaseImplementation_Original::evaluate()
13 Neos\Fusion\Core\Runtime_Original::evaluateObjectOrRetrieveFromCache(Neos\Fusion\FusionObjects\CaseImplementation, "root", array|13|, array|6|)
12 Neos\Fusion\Core\Runtime_Original::evaluateInternal("root", "Exception")
11 Neos\Fusion\Core\Runtime_Original::render("root")
10 Neos\Neos\View\FusionView_Original::render()
9 Neos\Flow\Mvc\Controller\ActionController_Original::callActionMethod()
8 Neos\Flow\Mvc\Controller\ActionController_Original::processRequest(Neos\Flow\Mvc\ActionRequest, Neos\Flow\Http\Response)
7 Neos\Flow\Mvc\Dispatcher_Original::initiateDispatchLoop(Neos\Flow\Mvc\ActionRequest, Neos\Flow\Http\Response)
6 Neos\Flow\Mvc\Dispatcher_Original::dispatch(Neos\Flow\Mvc\ActionRequest, Neos\Flow\Http\Response)
5 Neos\Flow\Mvc\DispatchComponent_Original::handle(Neos\Flow\Http\Component\ComponentContext)
4 Neos\Flow\Http\Component\ComponentChain_Original::handle(Neos\Flow\Http\Component\ComponentContext)
3 Neos\Flow\Http\Component\ComponentChain_Original::handle(Neos\Flow\Http\Component\ComponentContext)
2 Neos\Flow\Http\RequestHandler::handleRequest()
1 Neos\Flow\Core\Bootstrap::run()


HTTP REQUEST:
GET / HTTP/1.1
Host: test.schul.cloud
Accept-Language: de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7
Accept-Encoding: gzip, deflate, br
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.183 Safari/537.36 Vivaldi/1.96.1147.42
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0



HTTP RESPONSE:
[response was empty]

PHP PROCESS:
Inode: 23930737
PID: 19176
UID: 1576387
GID: 100
User: p347117

    [array] => 

Did there change something to with conditions? Here is my full root.fusion:

prototype(Neos.NodeTypes:Page) < prototype(Neos.Neos:Page) {
	head {
		metadata = Neos.Fusion:Template {
			templatePath = 'resource://hkm.schulcloud/Private/Templates/Page/Default.html'
			sectionName = 'metadata'

			title = ${q(node).property('title')}
			description = ${q(node).property('description')}
        }
		stylesheets.site = Neos.Fusion:Template {
			templatePath = 'resource://hkm.schulcloud/Private/Templates/Page/Default.html'
			sectionName = 'stylesheets'
		}
		javascripts.site = Neos.Fusion:Template {
			templatePath = 'resource://hkm.schulcloud/Private/Templates/Page/Default.html'
			sectionName = 'headScripts'
		}
		// titleTag = null

		formBuilderStyles = Neos.Fusion:Tag {
			tagName = 'script'
			attributes {
				src = Neos.Fusion:ResourceUri {
					path = Neos.Fusion:Case {
						if = Neos.Fusion:Matcher {
							condition = ${q(node).property('uriPathSegment') == 'aktivierung'}
							renderer = 'resource://hkm.schulcloud/Public/JavaScript/t.min.js'
						}
						elseif = Neos.Fusion:Matcher {
							condition = ${q(node).property('uriPathSegment') == 'registrieren'}
							renderer = 'resource://hkm.schulcloud/Public/JavaScript/reg.min.js'
						}
					}
				}
			}
			@if.isInBackend = ${!documentNode.context.inBackend}
			@position = 'end'
		}
	}

	bodyTag {
		attributes.class = ${q(node).property('title')}
	}
	body {
		templatePath = 'resource://hkm.schulcloud/Private/Templates/Page/Default.html'
		sectionName = 'body'
		parts {
			menu = Neos.Neos:Menu {
				templatePath = 'resource://hkm.schulcloud/Private/Templates/FusionObjects/navimain.html'
				// attributes {
				// 	class = 'uk-navbar-nav'
				// }
			}

			metaMenu = Menu
			metaMenu {
				entryLevel = 2
				templatePath = 'resource://hkm.schulcloud/Private/Templates/FusionObjects/navihead.html'
				maximumLevels = 2
				uikiticon = ${q(node).property('uikiticon')}
				startingPoint = ${q(site).children('[uriPathSegment="headnavi"]').get(0)}
			}

			footerMenu = Menu
			footerMenu {
				entryLevel = 2
				templatePath = 'resource://hkm.schulcloud/Private/Templates/FusionObjects/navifooter.html'
				maximumLevels = 2
				startingPoint = ${q(site).children('[uriPathSegment="footernavi"]').get(0)}
			}
			title = ${q(node).property('title')}
		}




		// These are your content areas, you can define as many as you want, just name them and the nodePath.
		content {
			// The default content section
			main = Neos.Neos:PrimaryContent {
				nodePath = 'main'
			}
		}

		javascripts.site = Neos.Fusion:Template {
			templatePath = 'resource://hkm.schulcloud/Private/Templates/Page/Default.html'
			sectionName = 'bodyScripts'
		}
	}
}

prototype(Neos.NodeTypes:Text) {
	@process.wrapWithContainer = ${'<div class="uk-section uk-section-small uk-section-default"><div class="uk-container">' + value + '</div></div>'}
}
prototype(Neos.NodeTypes:Html) {
	templatePath = 'resource://hkm.schulcloud/Private/Templates/FusionObjects/Html.html'
}
prototype(Neos.NodeTypes:ContentReferences) {
	templatePath = 'resource://hkm.schulcloud/Private/Templates/FusionObjects/ContentReferences.html'
}
prototype(Neos.NodeTypes:MultiColumn) {
	attributes {
		class = 'uk-child-width-expand@m'
		uk-grid = ''
	}
	isGrey = ${q(node).property('isGrey') ? 'isgrey' : ''}
	secondColumnOrange = ${q(node).property('layout') == 'color' ? true : false}
	
	columns.iterationName = 'multiColumnIteration'

	# do not add padding to text-element in columns
	prototype(Neos.NodeTypes:Text) {
		@process.wrapWithContainer = ${value}
	}
}
prototype(Neos.NodeTypes.ColumnLayouts:MultiColumn) {
	templatePath = 'resource://hkm.schulcloud/Private/Templates/FusionObjects/MultiColumn.html'
	headerRenderer = hkm:MultiLineHeader
	header0 = ${q(node).children('header0').get(0)}
}
prototype(Neos.NodeTypes:MultiColumnItem) {
	// attributes.class = ${q(node).parent().property('layout') +  ' ' }
	// attributes.class = 'uk-section uk-section-small uk-section-default'
	// attributes.class.@if.cond1 = ${q(node).parent().property('layout') == 'orange'}

	attributes.class = Neos.Fusion:Case {
		if = Neos.Fusion:Matcher {
			condition = ${q(node).parent().property('layout') == 'color'}
			renderer = 'uk-section uk-section-small uk-section-default'
		}
	}

}

prototype(hkm:MultiLineHeader) < prototype(Neos.Neos:Content) {
        templatePath = 'resource://hkm.schulcloud/Private/Templates/FusionObjects/MultiLineHeader.html'

        headline = ${q(node).property('headline')}
		// image = ${q(node).property('image')}

		logoUri = Neos.Neos:ImageUri {
				asset = ${q(node).property('image')}
				// width = 100
				// height = 100
				// allowCropping = TRUE
				// allowUpScaling = TRUE
		}
		// attributes.class = ${q(node).property('layout')}
		attributes.class = Neos.Fusion:RawArray {
			layout = ${q(node).property('layout')}
			hasBG = ${q(node).property('image') ? 'hasBackgroundimage' : false}
		}
		attributes.id = ${q(node).property('id')}
		// attributes.style = ${"background-image: url(" + logoUri + ")"}
		
}

prototype(Shel.Blog:BlogEntry) < prototype(Content) {
	templatePath = 'resource://hkm.schulcloud/Private/Templates/Plugins/BlogEntry.html'
	attributes.class = 'blog-entry uk-article'

	imageSettings = Neos.Fusion:RawArray {
        // class = 'blog-entry-image'
		class = ${q(node).property('entryImage').height < q(node).property('entryImage').width ? 'horizontal blog-entry-image' : 'vertikal blog-entry-image'}
        width = 800
        height = 800
        cropping = false
        upScaling = false
    }
	summary.@process {
        stripTags = ${String.stripTags(value)}
        crop = ${String.crop(value, 600, '…')}
    }

	prototype(Neos.NodeTypes:Text) {
		@process.wrapWithContainer = ${'' + value + ''}
	}


}
prototype(Shel.Blog:BlogFeed) < prototype(Content) {
	templatePath = 'resource://hkm.schulcloud/Private/Templates/Plugins/BlogFeed.html'
}
prototype(Shel.Blog:BlogFeedEntry) < prototype(Shel.Blog:BlogEntry) {
    templatePath = ${'resource://hkm.schulcloud/Private/Templates/Plugins/BlogFeedEntry.html'}
}

prototype(Gerdemann.ReCAPTCHA:ReCAPTCHA.Definition) < prototype(Neos.Form.Builder:FormElement.Definition) {
	formElementType = 'Gerdemann.ReCAPTCHA:ReCAPTCHA'
}

prototype(hkm.schulcloud:Slider) {
        carouselItems = Neos.Neos:ContentCollection {
			nodePath = 'carouselItems'
			content.iterationName = 'carouselItemsIteration'
			attributes.class = 'uk-slider-items'
			tagName = 'ul'
        }

		// attributes.class = "uk-section uk-section-small uk-section-default"
		sliderid = ${q(node).property('_name')}
        // Collect the carousels children but only images
        // carouselItemArray = ${q(node).children('carouselItems').children('[instanceof Neos.NodeTypes:Image]')}
		carouselItemArray = ${q(node).children('carouselItems').children('[instanceof Neos.NodeTypes:TextWithImage]')}

        // Enhance image prototype when inside the carousel
        prototype(Neos.NodeTypes:TextWithImage) {
                // Render images in the carousel with a special template.
                templatePath = 'resource://hkm.schulcloud/Private/Templates/NodeTypes/SliderItem.html'
 
                // The first item should later be marked as active
                attributes.class = 'uk-section'

				imageClassName = ${ 'uk-align-' + q(node).property('alignment') }

                // We want to use the item iterator in fluid so we have to store it as variable.
                iteration = ${carouselItemsIteration}
        }
}

prototype(Neos.NodeTypes:TextWithImage) {
	// attributes.class = "uk-container uk-child-width-1-2 uk-flex uk-flex-between uk-flex-middle"
	// attributes.class = "uk-child-width-expand@m neos-nodetypes-twocolumn uk-grid"
	attributes.class = ${q(node).property('alignment') == 'above' ? 'uk-child-width-1-1 neos-nodetypes-twocolumn uk-grid' : 'uk-child-width-expand@m neos-nodetypes-twocolumn uk-grid' }
	
	attributes.uk-grid = ""
}

prototype(hkm.schulcloud:FormHTML.Definition) < prototype(Neos.Form.Builder:FormElement.Definition) {
	formElementType = 'hkm.schulcloud:FormHTML'
}

After another fresh installation of Neos 4.0 and kickstarting a fresh Sitepackage i compared the new configuration and fusion forders and adopted(?) the changes to my mirror of my live-page like

prototype(hkm.schulcloud:DefaultPage) < prototype(Neos.Neos:Page) {
	head {
		stylesheets.site = Neos.Fusion:Template {
			templatePath = 'resource://hkm.schulcloud/Private/Templates/Page/Default.html'
			sectionName = 'stylesheets'
		}
		javascripts.site = Neos.Fusion:Template {
			templatePath = 'resource://hkm.schulcloud/Private/Templates/Page/Default.html'
			sectionName = 'headScripts'

			currentTitle = ${q(node).property('title')}
		}    		
	}

bodyTag {
	attributes.class = ${q(node).property('title')}
}
body {
	templatePath = 'resource://hkm.schulcloud/Private/Templates/Page/Default.html'
	sectionName = 'body'
	parts {
		menu = Neos.Neos:Menu {
			templatePath = 'resource://hkm.schulcloud/Private/Templates/FusionObjects/navimain.html'
			// attributes {
			// 	class = 'uk-navbar-nav'
			// }
		}

		metaMenu = Menu
		metaMenu {
			entryLevel = 2
			templatePath = 'resource://hkm.schulcloud/Private/Templates/FusionObjects/navihead.html'
			maximumLevels = 2
			uikiticon = ${q(node).property('uikiticon')}
			startingPoint = ${q(site).children('[uriPathSegment="headnavi"]').get(0)}
		}

		footerMenu = Menu
		footerMenu {
			entryLevel = 2
			templatePath = 'resource://hkm.schulcloud/Private/Templates/FusionObjects/navifooter.html'
			maximumLevels = 2
			startingPoint = ${q(site).children('[uriPathSegment="footernavi"]').get(0)}
		}
		title = ${q(node).property('title')}
	}

	javascripts.site = Neos.Fusion:Template {
		templatePath = 'resource://hkm.schulcloud/Private/Templates/Page/Default.html'
		sectionName = 'bodyScripts'
	}
}
}

And my Default.html remained the same like

<!DOCTYPE html>
{namespace neos=Neos\Neos\ViewHelpers}
{namespace fusion=Neos\Fusion\ViewHelpers}
<html>
<head>
	<f:section name="metadata">
		<meta name="viewport" content="width=device-width, initial-scale=1">
		<meta name="theme-color" content="#555555">
		<meta name="seobility" content="53a6fb279a6b84f67fe2613092db0510">
		<link rel="apple-touch-icon-precomposed" sizes="57x57" href="{f:uri.resource(path: 'Images/favicons/apple-touch-icon-57x57.png', package: 'hkm.schulcloud')}" />
        <link rel="apple-touch-icon-precomposed" sizes="114x114" href="{f:uri.resource(path: 'Images/favicons/apple-touch-icon-114x114.png', package: 'hkm.schulcloud')}" />
        <link rel="apple-touch-icon-precomposed" sizes="72x72" href="{f:uri.resource(path: 'Images/favicons/apple-touch-icon-72x72.png', package: 'hkm.schulcloud')}" />
        <link rel="apple-touch-icon-precomposed" sizes="144x144" href="{f:uri.resource(path: 'Images/favicons/apple-touch-icon-144x144.png', package: 'hkm.schulcloud')}" />
        <link rel="apple-touch-icon-precomposed" sizes="60x60" href="{f:uri.resource(path: 'Images/favicons/apple-touch-icon-60x60.png', package: 'hkm.schulcloud')}" />
        <link rel="apple-touch-icon-precomposed" sizes="120x120" href="{f:uri.resource(path: 'Images/favicons/apple-touch-icon-120x120.png', package: 'hkm.schulcloud')}" />
        <link rel="apple-touch-icon-precomposed" sizes="76x76" href="{f:uri.resource(path: 'Images/favicons/apple-touch-icon-76x76.png', package: 'hkm.schulcloud')}" />
        <link rel="apple-touch-icon-precomposed" sizes="152x152" href="{f:uri.resource(path: 'Images/favicons/apple-touch-icon-152x152.png', package: 'hkm.schulcloud')}" />
        <link rel="icon" type="image/png" href="{f:uri.resource(path: 'Images/favicons/favicon-196x196.png', package: 'hkm.schulcloud')}" sizes="196x196" />
        <link rel="icon" type="image/png" href="{f:uri.resource(path: 'Images/favicons/favicon-96x96.png', package: 'hkm.schulcloud')}" sizes="96x96" />
        <link rel="icon" type="image/png" href="{f:uri.resource(path: 'Images/favicons/favicon-32x32.png', package: 'hkm.schulcloud')}" sizes="32x32" />
        <link rel="icon" type="image/png" href="{f:uri.resource(path: 'Images/favicons/favicon-16x16.png', package: 'hkm.schulcloud')}" sizes="16x16" />
        <link rel="icon" type="image/png" href="{f:uri.resource(path: 'Images/favicons/favicon-128.png', package: 'hkm.schulcloud')}" sizes="128x128" />
        <meta name="application-name" content="Kostenloser Messenger mit Dateiablage für Schüler und Lehrer."/>
        <meta name="msapplication-TileColor" content="#555555" />
        <meta name="msapplication-TileImage" content="{f:uri.resource(path: 'Images/favicons/mstile-144x144.png', package: 'hkm.schulcloud')}" />
        <meta name="msapplication-square70x70logo" content="{f:uri.resource(path: 'Images/favicons/mstile-70x70.png', package: 'hkm.schulcloud')}" />
        <meta name="msapplication-square150x150logo" content="{f:uri.resource(path: 'Images/favicons/mstile-150x150.png', package: 'hkm.schulcloud')}" />
        <meta name="msapplication-wide310x150logo" content="{f:uri.resource(path: 'Images/favicons/mstile-310x150.png', package: 'hkm.schulcloud')}" />
        <meta name="msapplication-square310x310logo" content="{f:uri.resource(path: 'Images/favicons/mstile-310x310.png', package: 'hkm.schulcloud')}" />

	</f:section>
	<f:section name="stylesheets">
		<!-- Put your stylesheet inclusions here, they will be included in your website by Fusion -->
		<link rel="stylesheet" href="{f:uri.resource(path: 'Styles/uikit.min.css')}" />
		<link rel="stylesheet" href="{f:uri.resource(path: 'Styles/style_purged.css')}" />
		<link rel="stylesheet" href="{f:uri.resource(path: 'Styles/responsive.min.css')}" />
	</f:section>
	<f:section name="headScripts">
		<!-- Put your scripts inclusions for the head here, they will be included in your website by Fusion -->
		<script src="{f:uri.resource(path: 'JavaScript/uikit.min.js', package: 'hkm.schulcloud')}" ></script>
		<script src="{f:uri.resource(path: 'JavaScript/uikit-icons.min.js', package: 'hkm.schulcloud')}" ></script>


		<f:if condition="{currentTitle} == 'Registrieren' || {currentTitle} == 'Aktivierung'">
			<f:then>
				<!-- wird bei den Formularen benötigt -->
				<script src="https://www.google.com/recaptcha/api.js" async defer></script>
				<!-- Minified version of `es6-promise-auto` below. -->
				<script src="https://cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.min.js"></script>
				<script src="https://cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.auto.min.js"></script> 
				<script src="{f:uri.resource(path: 'JavaScript/fetch.min.js', package: 'hkm.schulcloud')}"></script>
			</f:then>
		</f:if>

	</f:section>
</head>
<body>
<f:section name="body">
<div class="uk-offcanvas-content">
	<section id="head" class="uk-padding-small uk-child-width-1-2@s" uk-grid>
		<div class="uk-padding-small" uk-grid>
			<p class=""><span class="" uk-icon="receiver"></span> +49 (0) 511 - 67 51 90</p>
			<p class=""><span class="" uk-icon="mail"></span> <a href="mailto:hello@schul.cloud" title="Sag hallo!">hello@schul.cloud</a></p>
		</div>
		<div class="uk-text-right">
			<nav>
				<ul class="headernav">
					{parts.metaMenu -> f:format.raw()}
					<!-- <li><span uk-icon="search"></span> Suchen</li> -->
				</ul>
			</nav>
		</div>
	</section>

		

	<div id="offcanvas-nav-primary" uk-offcanvas="mode: push;overlay: true;flip: true">
		<div class="uk-offcanvas-bar uk-flex uk-flex-column">
			<div id="offcanvas-header">
				<p class="uk-text-right">
					<a href="#offcanvas-nav-primary" class="uk-offcanvas-close" uk-close></a>
				</p>
			</div>
			<ul class="uk-nav uk-nav-primary uk-nav-left uk-margin-auto-vertical uk-parent">
			<f:if condition="{parts.title} == 'schul.cloud'">
					<f:then>
						<li class="main uk-active">
					</f:then>
					<f:else>
						<li class="main">
					</f:else>
				</f:if>
					<a href="/">schul.cloud </a>
				</li>
				{parts.menu -> f:format.raw()}
				{parts.metaMenu -> f:format.raw()}
			</ul>
		</div>
	</div>


	<section id="navwrapper" uk-sticky="sel-target: .uk-navbar-container; cls-active: uk-navbar-sticky;">
		<nav class="uk-container uk-navbar-container" uk-navbar role="navigation">
			<div class="uk-navbar-left">
				<ul class="uk-navbar-nav">
					<li class="navlogo">
						<f:if condition="{parts.title} == 'schul.cloud'">
							<f:then>
								<a href="/" class="uk-navbar-item uk-logo uk-active">
							</f:then>
							<f:else>
								<a href="/" class="uk-navbar-item uk-logo">
							</f:else>
						</f:if>
							<span>schul.<strong>cloud</strong></span>
						</a>
					</li>
					{parts.menu -> f:format.raw()}
					<li class="willToggle">
						<a class="uk-navbar-toggle" href="#offcanvas-nav-primary" uk-toggle>
							<span class="uk-margin-small-right">MENÜ</span> <span uk-navbar-toggle-icon></span>
						</a>
					</li>
				</ul>
			</div>
		</nav>
	</section>

	<div id="content" class="content">
		{content.main -> f:format.raw()}
	</div>



	<footer id="footer" class="uk-section uk-section-small uk-section-secondary uk-light">
		<div class="uk-container">
			<div class="uk-child-width-1-3@m" uk-grid>
				<div class="uk-flex vcard">
                    <a href="https://heinekingmedia.de/" class="uk-margin-small-right uk-width-1-2" target="_blank" title="Die heinekingmedia GmbH mit Sitz in Hannover bietet spannende Produkte rund um das Thema digitale Kommunikation in Unternehmen, Öffentlichen Institutionen, Behörden und Bildungseinrichtungen" height="100" style="max-width: 30%;">
                        <img src="{f:uri.resource(path: 'Images/heinekingmedia-footer.svg', package: 'hkm.schulcloud')}" class="photo" style="width: 100%;height:auto;" />
                    </a>
					<p style="margin:0;"><span class="uk-margin-small-right" uk-icon="receiver"></span>	<span class="tel">+49 (0) 511 - 67 51 90</span><br />
						<span class="uk-margin-small-right" uk-icon="mail"></span> <a class="email" href="mailto:hello@schul.cloud">hello@schul.cloud</a><br />
						<br />
						<span class="fn" style="display: none"></span>
						<span class="org">heinekingmedia GmbH</span><br />
						<span class="adr">
							<span class="street-address">Hamburger Allee 2 - 4</span><br />
							<span class="postal-code">30161</span> <span class="locality">Hannover</span>
						</span>
						<br />
					</p>
				</div>
				<div>
					{parts.footerMenu -> f:format.raw()}
				</div>
				<div>
					<p>schul.cloud ist eine Kooperation von <a href="https://www.projektnetschool.de/" title="netschool® bietet Schulen und anderen Bildungseinrichtungen angepasste Lösungen für effektive digitale Kommunikation - bekannt durch Produkte wie Digitales Schwarzes Brett®, Digitale Tafel und die schul.cloud">netschool®</a> (einer Marke der heinekingmedia GmbH) und <a href="https://untis.de/" title="Untis ist Markführer für Stundenplan- und Vertretungsplan-Software und ein Kooperationspartner der heinekingmedia GmbH">Untis</a>.</p>
				</div>
			</div>
			<p style="text-align: center;">
				<a href="https://stashcat.com/nimes" target="_blank" title="mehr Informationen über stashcat">
					So sicher, dass es auch die Polizei erlaubt! Mehr zum Polizeimessenger
				</a>
			</p>
		</div>
	</footer>

</div>
</f:section>

<f:section name="bodyScripts">
	<!-- Put your scripts inclusions for the end of the body here, they will be included in your website by Fusion -->

	<script>
		if(document.getElementById('sticky')) {
			let scrollpos = window.scrollY
			const sticky = document.getElementById('sticky')
			const windowheight = window.innerHeight / 2;
			const add_class_on_scroll = () => sticky.classList.add("isSticky")
			const remove_class_on_scroll = () => sticky.classList.remove("isSticky")
			window.addEventListener('scroll', function() { 
				scrollpos = window.scrollY;
				if (scrollpos >= windowheight) { add_class_on_scroll() }
				else { remove_class_on_scroll() }
			})
		}
	</script>
</f:section>
</body>
</html>

But it does not change the behavior of not loading the stylesheets or any other section. It just renders the body. :sweat:

Just for the record. Had the same issue today that {f:uri.resource(path:… was not replaced/parsed in the output and my js files in the headScript-Section were missing altough the css-files in the stylesheets-Section were in place. :no_mouth:

Switching back from PHP 7.3. to 7.2 solved this issue for me…

1 Like