I brought my theme to the server but in the production environment the ability to write files from php is blocked, it must all be versioned and built. The problem is that the theme tries to write to the blade cache folder (which I had to move to the theme) and gives me this error:
NOTICE: PHP message: PHP Warning: file_put_contents (… / wp-content / themes / special-issue-theme / cache / 20a03b37d2296fc9f35d4a57357067c45e58df42.php): failed to open stream: Permission denied in … / wp-content / themes /special-issue-theme/vendor/illuminate/filesystem/Filesystem.php on line 122 "
The problem is that all the pages give me blank page (not error 500).
Do you know how to solve the problem?
The only solution I see is to rewrite all the views without blades but obviously it is a job that I would not want to do.
I don’t know your deployment strategy, but you can feasibly pre-generate all your blades. In Sage 10 you can use the acorn command for WP-CLI to do this. Sage 9 doesn’t have that functionality built-in, but I wrote a WP-CLI command for Sage 9 a while ago to accomplish the same thing: https://github.com/alwaysblank/blade-generate
Sometime a host will block writing to the theme or root folder but will allow writing to wp-content. If so you can move your blade cache to the wp-content folder.
Thanks a lot Slam.
The problem is that in wp-content/uploads it allows the writing of non-executable files for security reasons.
The only solution I have found to solve the problem is to rewrite the views directly with php. It was the solution that I least wanted to do, but our client has severe restrictions on their servers for security reasons.
I found where Illuminate names the cache files but I was unable to change the method and perhaps it would have been the worst solution to change the files of a package even if the deployment is not done with compose.r but also versioning the /vendor.
It would be very interesting to try to understand if Illuminate could create the cache file name starting from the relative path of the theme and not the absolute one. In this way you could generate the cache locally, version it and then deploy it.