Elmar Hinz wrote:
The page should be answered the TYPO3 cache even on forced reload. If it changes, either the cache is turned off or an USER_INT or COA_INT is involved.
The TypoScriptFrontendController differs between normal requests and "shift reload" request (headerNoCache()-method) and applies other logic.
As said before, if I clear all caches (i.e. with coreapi extension and command line cacheapi:clearallcaches) and reload the page, I got the wrong result. If i reload the page normal, it stays the same. The "shift reload" returns the correct result and every following request also returns the correct result. (cache enabled with config.no_cache=0)
If I do the same with cache turned off (config.no_cache=1), the first time I open the page, I get the wrong result. The second, thrid,.. time I get the correct result. This time it doesn't matter how I reload the page.
Seems to me like the first time Typo3 uses some wrong values, write them to an cache. The next time Typo3 load the values from the cache and they are applied correctly. I could be wrong, but currently I have no other explanation.
As both is not the standard case, I ask for a a little more detailed description of the TS setup.
I run a normal Typo3 setup with no exotic extensions. Here's an extract of our ts setup. Some (for me) unimportant parts are stripped:
config {
linkVars = L(0-9)
sys_language_uid = {$lib.sys_language_uid}
metaCharset = utf-8
locale_all = {$lib.locale_all}
language = {$lib.typo3LanguageCode}
message_page_is_being_generated = Page ###REQUEST_URI### is being generated. If this message does not disappear within 10 seconds, please reload.
sys_language_mode = ignore
sys_language_overlay = 0
}
[globalVar = LIT:0 < {$lib.content_fallback}]
config {
sys_language_mode = content_fallback; {$lib.content_fallback},0
sys_language_overlay = hideNonTranslated
}
[global]
config {
# Doctype
doctype = html5
xmlprologue = none
htmlTag_langKey < config.language
# Code Cleaning
disablePrefixComment = 1
pageTitleFirst = 1
removeDefaultJS = external
}
[globalVar = LIT:1 = {$lib.realurl.enable}]
config {
simulateStaticDocuments = 0
baseURL = {$lib.url.protocol}://{$lib.url.domain}{$lib.url.basePath}
tx_realurl_enable = 1
prefixLocalAnchors = all
}
[global]
config {
no_cache = {$lib.config.disableCache}
cache_period = 604800
sendCacheHeaders = 0
meaningfulTempFilePrefix = 100
}
page = PAGE
page.10 = FLUIDTEMPLATE
page.10 {
file = {$lib.path.html}/tpl_website.html
partialRootPath = {$lib.path.html}/
variables{
layout = TEXT
layout.data = levelfield:-1,backend_layout_next_level,slide
layout.override.field = backend_layout
}
}
# Body-Tag
page.bodyTagCObject = COA
page.bodyTagCObject {
wrap = <body class=" | ">
10 = TEXT
10.data = levelfield:-1,backend_layout_next_level,slide
10.override.field = backend_layout
10.stdWrap.noTrimWrap = |layout-||
20 = TEXT
20.value = screen
20.stdWrap.noTrimWrap = | type-||
30 = TEXT
30.value =
30.stdWrap.noTrimWrap = | ||
40 = TEXT
40.field = uid
40.stdWrap.noTrimWrap = | pid-||
50 = TEXT
50.value = {$lib.language}
50.stdWrap.noTrimWrap = | language-||
}
# Body-Tag für Popups
[globalVar = GP:popup = 1]
page.bodyTagCObject.20.value = popup
[global]
page {
shortcutIcon = {$lib.path.favicon}/{$lib.meta.favicon}
meta >
meta.content-type = text/html; charset=utf-8
meta.content-type.httpEquivalent = 1
headerData.20 = COA
headerData.20 {
# ...
}
}