Match Keyboard Placement to Neutral Forearms

Sesli oku

CCOHS connects keyboard height and position with device size, key action and the ability to work without overreaching.

Consider size as well as shape

A shorter keyboard can reduce the need to reach outward and create more options for mouse placement. Split or tented designs may help certain users find a suitable arm position, while the key action should not require heavy force or trigger accidental extra input. A separate number pad can also provide flexibility that a permanently attached keypad does not.

Place it as part of the workstation

The keyboard should be directly ahead, with relaxed shoulders, elbows near the body and wrists in line with the forearms. Height and tilt should be adjusted to maintain that alignment. The guide cautions against resting the wrists heavily on the desk and recommends evaluating any wrist support within the whole setup. Even a comfortable design does not remove fatigue from prolonged keyboard use, so short breaks and changes in activity remain important.

Place a keyboard around neutral forearms
Original editorial workstation sequence based on CCOHS keyboard guidance.

Test key action before changing the whole layout

CCOHS warns that an overly sensitive keyboard can cause extra characters that require corrective movement, while heavy keys demand unnecessary effort. The desired action therefore is neither simply the lightest nor the most resistant. Try a familiar typing task and observe whether the chosen keys and layout support neutral wrists without frequent corrections. A separate number pad can also let frequently used typing keys remain centered while creating room for the pointer. The source treats split and tented designs as options to evaluate for individual needs, not universal replacements. Keep short recovery breaks in the routine even when a new keyboard initially feels more comfortable than the old one.

Center the typing task rather than the entire plastic case

The fact sheet connects shorter keyboards with less reaching and more freedom to place a mouse. The useful comparison is therefore the location of the keys actually used relative to the person, not simply whether the outside edges look symmetrical on the desk. A built-in number pad can move the typing area away from the center when the whole case is centered. A separate pad provides another option when frequent number entry and ordinary writing need different arrangements.

Place both keyboard and pointer within a comfortable reach while keeping the shoulders relaxed. This is a coordinated adjustment with the chair and desk, rather than an instruction to push the board to the extreme front edge. Check a familiar task from the normal seated position. If the elbows repeatedly move far outward or the body leans forward to reach a device, the layout deserves attention before a more unusual keyboard design is treated as the only answer.

Use tilt according to wrist alignment

A keyboard's rear feet are an option for changing its slope, not a universal instruction to make it steeper. CCOHS discusses arrangements that can raise either end when that helps maintain a straight wrist-to-forearm line. Observe the hand position at the actual desk height and adjust the support accordingly. The aim is a neutral position rather than reproducing a product photograph or treating the highest setting as the most comfortable one by definition.

Keyboard selection includes several separate checks
Original editorial comparison of keyboard width, shape, key action and recovery.

Split and tented designs also address different physical arrangements. The source recommends trying models and explicitly avoids naming a universally best keyboard. A design that suits one person's arm position may require a learning period or fail to suit another's tasks. Include shortcuts, frequently used keys and pointer transitions in the trial. The value of the shape is whether it supports suitable alignment during real work, not the unfamiliar appearance itself.

Evaluate key effort and recovery together

The appropriate key action avoids both unnecessary force and excessive sensitivity that produces corrective typing. Read the result of a familiar passage and note whether unwanted characters lead to repeated corrections. A lighter switch is not automatically the more suitable switch, just as a heavier one does not prove better control. These observations should be considered alongside hand position rather than used as an isolated ranking of keyboard quality.

The guidance also makes clear that sustained use can tire the hands, arms, shoulders and back even with a suitable device. Keep short breaks and changes in activity within the routine after making adjustments. A wrist support should be assessed as part of that same workstation, with attention to avoiding heavy contact pressure. The practical objective is a repeatable arrangement that supports ordinary work while allowing recovery, rather than assuming one purchase removes the effects of prolonged keyboard use.

References

  1. Office Ergonomics - Keyboard Selection and Use. Canadian Centre for Occupational Health and Safety.

Yazar Hakkında

WEBUZMAN 354 yazı

Burada sadece teorik bilgiler değil, gerçek deneyimlere dayanan pratik çözümler var. Burada yol arkadaşı olacağız. Karmaşık konuları birlikte çözecek, teknik detayları birlikte aşacağız...

Benzer Yazılar

Bir Cevap Yaz

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir.

Görünüm

E-Bülten Aboneliği

Güncel haberlerden haberdar olmak için e-bültenimize abone olun

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-10-28 14:07:31 HTTP/1.1 GET : https://workspaceguidesetup.com/news/56498/match-keyboard-placement-to-neutral-forearms
  2. 运行时间 : 0.051484s [ 吞吐率:19.42req/s ] 内存消耗:7,569.78kb 文件加载:178
  3. 缓存信息 : 0 reads,0 writes
  1. /www/wwwroot/zmCms/my-cms/public/index.php ( 3.09 KB )
  2. /www/wwwroot/zmCms/my-cms/vendor/autoload.php ( 0.73 KB )
  3. /www/wwwroot/zmCms/my-cms/vendor/composer/autoload_real.php ( 1.63 KB )
  4. /www/wwwroot/zmCms/my-cms/vendor/composer/platform_check.php ( 0.90 KB )
  5. /www/wwwroot/zmCms/my-cms/vendor/composer/ClassLoader.php ( 15.99 KB )
  6. /www/wwwroot/zmCms/my-cms/vendor/composer/autoload_static.php ( 5.01 KB )
  7. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /www/wwwroot/zmCms/my-cms/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  14. /www/wwwroot/zmCms/my-cms/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  15. /www/wwwroot/zmCms/my-cms/vendor/symfony/var-dumper/Resources/functions/dump.php ( 0.99 KB )
  16. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  17. /www/wwwroot/zmCms/my-cms/vendor/symfony/var-dumper/VarDumper.php ( 3.73 KB )
  18. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  19. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  20. /www/wwwroot/zmCms/my-cms/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  21. /www/wwwroot/zmCms/my-cms/app/provider.php ( 0.19 KB )
  22. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/Http.php ( 6.22 KB )
  23. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  24. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  25. /www/wwwroot/zmCms/my-cms/app/common.php ( 0.22 KB )
  26. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/helper.php ( 18.77 KB )
  27. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/Config.php ( 5.93 KB )
  28. /www/wwwroot/zmCms/my-cms/config/app.php ( 1.11 KB )
  29. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  30. /www/wwwroot/zmCms/my-cms/config/cache.php ( 1.95 KB )
  31. /www/wwwroot/zmCms/my-cms/config/console.php ( 0.47 KB )
  32. /www/wwwroot/zmCms/my-cms/config/cookie.php ( 0.56 KB )
  33. /www/wwwroot/zmCms/my-cms/config/database.php ( 2.13 KB )
  34. /www/wwwroot/zmCms/my-cms/config/filesystem.php ( 0.61 KB )
  35. /www/wwwroot/zmCms/my-cms/config/lang.php ( 0.91 KB )
  36. /www/wwwroot/zmCms/my-cms/config/log.php ( 2.18 KB )
  37. /www/wwwroot/zmCms/my-cms/config/mail.php ( 1.23 KB )
  38. /www/wwwroot/zmCms/my-cms/config/middleware.php ( 0.26 KB )
  39. /www/wwwroot/zmCms/my-cms/config/route.php ( 1.89 KB )
  40. /www/wwwroot/zmCms/my-cms/config/session.php ( 0.59 KB )
  41. /www/wwwroot/zmCms/my-cms/config/trace.php ( 0.34 KB )
  42. /www/wwwroot/zmCms/my-cms/config/view.php ( 2.08 KB )
  43. /www/wwwroot/zmCms/my-cms/app/event.php ( 0.25 KB )
  44. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/Event.php ( 7.77 KB )
  45. /www/wwwroot/zmCms/my-cms/app/service.php ( 0.13 KB )
  46. /www/wwwroot/zmCms/my-cms/app/AppService.php ( 0.86 KB )
  47. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /www/wwwroot/zmCms/my-cms/vendor/services.php ( 0.15 KB )
  53. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.20 KB )
  64. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.75 KB )
  65. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.30 KB )
  68. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /www/wwwroot/zmCms/my-cms/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /www/wwwroot/zmCms/my-cms/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /www/wwwroot/zmCms/my-cms/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-helper/src/helper/Arr.php ( 17.45 KB )
  80. /www/wwwroot/zmCms/my-cms/app/common/cache/DomainCache.php ( 5.40 KB )
  81. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  82. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/cache/Driver.php ( 9.02 KB )
  83. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  84. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/facade/Request.php ( 9.20 KB )
  85. /www/wwwroot/zmCms/my-cms/app/Request.php ( 0.09 KB )
  86. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/Request.php ( 54.64 KB )
  87. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/traits/UrlHandler.php ( 6.05 KB )
  88. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/traits/DomainHandler.php ( 5.49 KB )
  89. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/traits/HttpMethodHandler.php ( 4.74 KB )
  90. /www/wwwroot/zmCms/my-cms/app/middleware.php ( 0.34 KB )
  91. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  92. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  93. /www/wwwroot/zmCms/my-cms/app/middleware/LangMiddleware.php ( 4.35 KB )
  94. /www/wwwroot/zmCms/my-cms/app/middleware/CorsMiddleware.php ( 3.60 KB )
  95. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  96. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/route/RuleName.php ( 5.74 KB )
  97. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  98. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.41 KB )
  99. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/route/Rule.php ( 27.49 KB )
  100. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  101. /www/wwwroot/zmCms/my-cms/route/app.php ( 17.18 KB )
  102. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  103. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  104. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/route/Dispatch.php ( 11.32 KB )
  105. /www/wwwroot/zmCms/my-cms/app/controller/DetailController.php ( 18.72 KB )
  106. /www/wwwroot/zmCms/my-cms/app/controller/BaseController.php ( 48.65 KB )
  107. /www/wwwroot/zmCms/my-cms/app/BaseController.php ( 2.14 KB )
  108. /www/wwwroot/zmCms/my-cms/app/common/traits/MemberHelper.php ( 2.88 KB )
  109. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/facade/Log.php ( 3.07 KB )
  110. /www/wwwroot/zmCms/my-cms/vendor/psr/log/src/LogLevel.php ( 0.33 KB )
  111. /www/wwwroot/zmCms/my-cms/app/common/log/DomainFile.php ( 2.91 KB )
  112. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/log/driver/File.php ( 6.10 KB )
  113. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  114. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  115. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  116. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/event/LogWrite.php ( 0.76 KB )
  117. /www/wwwroot/zmCms/my-cms/app/common/IpHelper.php ( 2.17 KB )
  118. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  119. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  120. /www/wwwroot/zmCms/my-cms/app/service/SiteService.php ( 22.97 KB )
  121. /www/wwwroot/zmCms/my-cms/app/common/DomainHelper.php ( 14.61 KB )
  122. /www/wwwroot/zmCms/my-cms/app/common/cache/CacheHelper.php ( 29.40 KB )
  123. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/facade/Config.php ( 1.37 KB )
  124. /www/wwwroot/zmCms/my-cms/app/model/Site.php ( 2.88 KB )
  125. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/facade/App.php ( 2.73 KB )
  126. /www/wwwroot/zmCms/my-cms/app/service/MenuService.php ( 6.82 KB )
  127. /www/wwwroot/zmCms/my-cms/app/service/ModuleService.php ( 17.29 KB )
  128. /www/wwwroot/zmCms/my-cms/app/service/SiteExtensionDataDataService.php ( 3.08 KB )
  129. /www/wwwroot/zmCms/my-cms/app/service/SitePageService.php ( 2.30 KB )
  130. /www/wwwroot/zmCms/my-cms/app/common/util/StringUtil.php ( 9.08 KB )
  131. /www/wwwroot/zmCms/my-cms/app/view/driver/CustomThink.php ( 4.18 KB )
  132. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  133. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  134. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  135. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  136. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  137. /www/wwwroot/zmCms/my-cms/app/common/CustomTemplate.php ( 0.76 KB )
  138. /www/wwwroot/zmCms/my-cms/app/common/PathHelper.php ( 32.31 KB )
  139. /www/wwwroot/zmCms/my-cms/app/common/util/SocialUrlUtil.php ( 1.59 KB )
  140. /www/wwwroot/zmCms/my-cms/app/common/service/SymlinkService.php ( 16.08 KB )
  141. /www/wwwroot/zmCms/my-cms/app/model/SitePage.php ( 1.11 KB )
  142. /www/wwwroot/zmCms/my-cms/app/service/SiteCategoryService.php ( 18.30 KB )
  143. /www/wwwroot/zmCms/my-cms/app/service/AdsUnitService.php ( 42.44 KB )
  144. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  145. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.73 KB )
  146. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-orm/src/db/PDOConnection.php ( 53.74 KB )
  147. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  148. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  149. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  150. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-orm/src/db/Builder.php ( 24.07 KB )
  151. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  152. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-orm/src/db/Query.php ( 15.97 KB )
  153. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  154. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  155. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  156. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  157. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  158. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  159. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  160. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  161. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  162. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  163. /www/wwwroot/zmCms/my-cms/app/common/SeoVarHelper.php ( 5.65 KB )
  164. /www/wwwroot/zmCms/my-cms/app/service/SiteNewsService.php ( 6.37 KB )
  165. /www/wwwroot/zmCms/my-cms/app/model/News.php ( 7.12 KB )
  166. /www/wwwroot/zmCms/my-cms/app/common/UrlHelper.php ( 9.39 KB )
  167. /www/wwwroot/zmCms/my-cms/app/common/util/LdJson.php ( 23.74 KB )
  168. /www/wwwroot/zmCms/my-cms/app/model/SiteModel.php ( 0.92 KB )
  169. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  170. /www/wwwroot/zmCms/my-cms/app/service/PageMetaService.php ( 10.94 KB )
  171. /www/wwwroot/zmCms/my-cms/app/common/ArrayAccessWrapper.php ( 6.19 KB )
  172. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-template/src/template/taglib/Cx.php ( 24.23 KB )
  173. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-template/src/template/TagLib.php ( 12.11 KB )
  174. /www/wwwroot/zmCms/my-cms/runtime/temp/f78f4ede059a1da62431c75f0e43120a.php ( 118.17 KB )
  175. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/Response.php ( 9.07 KB )
  176. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/response/Html.php ( 0.97 KB )
  177. /www/wwwroot/zmCms/my-cms/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  178. /www/wwwroot/zmCms/my-cms/vendor/topthink/think-trace/src/Html.php ( 4.65 KB )
  1. SiteService getSiteByDomain - 查找站点,域名: workspaceguidesetup.com
  2. SiteService getSiteByDomain - 找到站点,ID: 1961, 名称: WorkspaceSetup Guide, 模板ID: 224
  3. SiteService safeTemplateDirExists - 检查模板目录是否存在,模板UID: workspaceguidesetup.com, 根路径: /www/wwwroot/zmCms/my-cms/
  4. SiteService safeTemplateDirExists - 检查路径: /www/wwwroot/zmCms/templates/workspaceguidesetup.com/, 是否存在: 否
  5. SiteService safeTemplateDirExists - 检查路径: /www/wwwroot/zmCms/my-cms/templates/workspaceguidesetup.com/, 是否存在: 否
  6. SiteService safeTemplateDirExists - 模板目录不存在: workspaceguidesetup.com
  7. SiteService getCurrentTemplate - 域名目录不存在: workspaceguidesetup.com,继续检查站点配置
  8. SiteService getCurrentTemplate - 使用传入的站点对象,ID: 1961, 模板ID: 224
  9. SiteService getCurrentTemplate - 从站点对象获取模板UID: news_qkd_0021
  10. SiteService safeTemplateDirExists - 检查模板目录是否存在,模板UID: news_qkd_0021, 根路径: /www/wwwroot/zmCms/my-cms/
  11. SiteService safeTemplateDirExists - 检查路径: /www/wwwroot/zmCms/templates/news_qkd_0021/, 是否存在: 是
  12. SiteService safeTemplateDirExists - 模板目录存在: /www/wwwroot/zmCms/templates/news_qkd_0021/
  13. SiteService getCurrentTemplate - 数据库配置模板目录存在,返回: news_qkd_0021
  14. [CacheHelper] 写入缓存: tpUid:workspaceguidesetup.com, 结果: 成功
  15. APCu缓存设置结果: 成功, 域: workspaceguidesetup.com, 值: news_qkd_0021
  16. 站点信息 - ID: 1961, URL: workspaceguidesetup.com, 类型: 0, 模板: news_qkd_0021, 站点数据: 存在
  17. [Lang] 当前语言: en,站点默认: en,URL 前缀: 否
  18. SiteService findTemplatePath - 应用根目录: /www/wwwroot/zmCms/my-cms/
  19. SiteService findTemplatePath - 检查的目录列表: workspaceguidesetup.com, news_qkd_0021, default, game_default
  20. SiteService findTemplatePath - 可能的基路径: /www/wwwroot/zmCms/templates/, /www/wwwroot/zmCms/my-cms/templates/
  21. SiteService findTemplatePath - 检查路径: /www/wwwroot/zmCms/templates/workspaceguidesetup.com/, 是否存在: 否
  22. SiteService findTemplatePath - 检查路径: /www/wwwroot/zmCms/templates/news_qkd_0021/, 是否存在: 是
  23. SiteService findTemplatePath - 找到目录: /www/wwwroot/zmCms/templates/news_qkd_0021/, 相对路径: ../templates/news_qkd_0021/
  24. SiteService findTemplatePath - 数据库配置模板标识: news_qkd_0021, 实际使用目录: news_qkd_0021, 是否匹配: 是
  25. [CacheHelper] 写入缓存: viewpath:workspaceguidesetup.com, 结果: 成功
  26. SiteService findTemplatePath - 已缓存视图路径,域名: workspaceguidesetup.com, 路径: ../templates/news_qkd_0021/
  27. 智能模板查找 - 域名: workspaceguidesetup.com, 模板UID: news_qkd_0021, 路径: ../templates/news_qkd_0021/
  28. 最终设置模板路径: ../templates/news_qkd_0021/
  29. CustomThink驱动初始化完成,已替换为CustomTemplate
  30. 开始分配模板变量 - 站点ID: 1961, 模板: news_qkd_0021
  31. 站点拓展字段数量: 29
  32. currentPath: news/56498/match-keyboard-placement-to-neutral-forearms
  33. 菜单数量: 6
  34. 模板变量分配完成
  35. 页面标识pageUid: detail
  36. 页面配置查询结果: 找到页面
  37. 获取到分类/标签列表数量: 5
  38. 页面配置: show_cat=1, show_models=1
  39. [模块] Associated News - 数量: 0, 配置显示数量: 8
  40. 模块数量: 1
  41. [模块-拆分后] Associated News - 数量: 0
  42. handleSiteMeta - 开始
  43. handleSiteMeta - 完成,已设置 SEO + hero
  44. [loadAdsConfig] ad_enable=0, google_client=, google_analytics=, clarity_project_id=null, AD_JS长度=0
  45. News控制器 name=, id=56498
  46. 当前站点ID: 1961, 站点类型: 0,name:,orgType:news,id:56498
  47. 111111111111111111orgType:news
  48. [SiteNewsService] 缓存新闻详情,缓存键: site:news:workspaceguidesetup.com:detail_56498
  49. [CacheHelper] 写入缓存: site:news:workspaceguidesetup.com:detail_56498, 结果: 成功
  50. 从SiteNewsService::getNewsDetail获取到新闻记录,站点ID: 1961, ID: 56498
  51. recordBrowseHistory 被调用, siteId: 1961, itemId: 56498, type: -1
  52. 会员信息无效或未登录,不记录浏览历史
  53. [Detail] play_url 值: 'https://workspaceguidesetup.com/play/56498/match-keyboard-placement-to-neutral-forearms', title: 'Match Keyboard Placement to Neutral Forearms'
  54. source_url:
  55. 不存在时分配空值
  56. [SiteNewsService] 缓存关联新闻,缓存键: site:news:workspaceguidesetup.com:link_18538
  57. [CacheHelper] 写入缓存: site:news:workspaceguidesetup.com:link_18538, 结果: 成功
  58. BaseController fetch开始 - 模板: detail.html, 请求模板路径: 未设置
  59. SiteService findTemplatePath - 应用根目录: /www/wwwroot/zmCms/my-cms/
  60. SiteService findTemplatePath - 检查的目录列表: workspaceguidesetup.com, news_qkd_0021, default, game_default
  61. SiteService findTemplatePath - 可能的基路径: /www/wwwroot/zmCms/templates/, /www/wwwroot/zmCms/my-cms/templates/
  62. SiteService findTemplatePath - 检查路径: /www/wwwroot/zmCms/templates/workspaceguidesetup.com/, 是否存在: 否
  63. SiteService findTemplatePath - 检查路径: /www/wwwroot/zmCms/templates/news_qkd_0021/, 是否存在: 是
  64. SiteService findTemplatePath - 找到目录: /www/wwwroot/zmCms/templates/news_qkd_0021/, 相对路径: ../templates/news_qkd_0021/
  65. SiteService findTemplatePath - 数据库配置模板标识: news_qkd_0021, 实际使用目录: news_qkd_0021, 是否匹配: 是
  66. [CacheHelper] 写入缓存: viewpath:workspaceguidesetup.com, 结果: 成功
  67. SiteService findTemplatePath - 已缓存视图路径,域名: workspaceguidesetup.com, 路径: ../templates/news_qkd_0021/
  68. BaseController fetch - 计算模板路径: ../templates/news_qkd_0021/, 模板UID: news_qkd_0021
  69. BaseController fetch - 完整模板文件路径: /www/wwwroot/zmCms/my-cms/../templates/news_qkd_0021/detail.html , 文件存在: 是
  1. CONNECT:[ UseTime:0.000354s ] mysql:host=localhost;port=3306;dbname=cms;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `cms_site_category` [ RunTime:0.001089s ]
  3. SELECT `seo_title`,`seo_keywords`,`seo_description`,`page_hero`,`page_hero_bg` FROM `cms_site_category` WHERE `name` = 'detail' AND `site_id` = '1961' LIMIT 1 [ RunTime:0.000267s ]
  4. SHOW FULL COLUMNS FROM `cms_site_news` [ RunTime:0.000762s ]
  5. SELECT `sa`.`id`,`sa`.`sort`,`sa`.`create_time`,`sa`.`site_id`,a.id as news_id,`a`.`title`,`a`.`summary`,`a`.`seo_title`,`a`.`seo_keywords`,`a`.`seo_description`,`a`.`thumb_big`,`a`.`thumb_middle`,`a`.`thumb_small`,`a`.`author`,`a`.`click_count`,`a`.`share_count`,`a`.`view_count`,`a`.`publish_time`,`a`.`update_time`,`a`.`cat_id`,`c`.`cat_name`,`ad`.`content` FROM `cms_site_news` `sa` INNER JOIN `cms_news` `a` ON `sa`.`news_id`=`a`.`id` LEFT JOIN `cms_categories` `c` ON `a`.`cat_id`=`c`.`id` LEFT JOIN `cms_news_detail` `ad` ON `a`.`id`=`ad`.`news_id` WHERE `sa`.`status` = '1' AND `a`.`status` = '1' AND `sa`.`site_id` = '1961' AND `a`.`id` = '56498' LIMIT 1 [ RunTime:0.000433s ]
  6. SHOW FULL COLUMNS FROM `cms_site_module` [ RunTime:0.000757s ]
  7. SELECT `sa`.`id`,`sa`.`sort`,`sa`.`create_time`,`sa`.`site_id`,a.id as news_id,`a`.`title`,`a`.`summary`,`a`.`seo_title`,`a`.`seo_keywords`,`a`.`seo_description`,`a`.`thumb_big`,`a`.`thumb_middle`,`a`.`thumb_small`,`a`.`author`,`a`.`click_count`,`a`.`share_count`,`a`.`view_count`,`a`.`publish_time`,`a`.`update_time`,`a`.`cat_id`,`c`.`cat_name` FROM `cms_site_news` `sa` INNER JOIN `cms_news` `a` ON `sa`.`news_id`=`a`.`id` LEFT JOIN `cms_categories` `c` ON `a`.`cat_id`=`c`.`id` WHERE `a`.`cat_id` = '2902' AND `sa`.`site_id` = '1961' AND `sa`.`status` = '1' AND `a`.`status` = '1' AND `sa`.`id` <> '18538' ORDER BY `a`.`create_time` DESC LIMIT 8 [ RunTime:0.000439s ]
0.052202s