UBUNTUでTOMCATを使用する場合で、ファイルを書き込むときの設定
/etc/systemd/system/multi-user.target.wants/tomcat9.service
# Security
User=tomcat
Group=tomcat
PrivateTmp=yes
AmbientCapabilities=CAP_NET_BIND_SERVICE
NoNewPrivileges=true
CacheDirectory=tomcat9
CacheDirectoryMode=750
ProtectSystem=strict
ReadWritePaths=/etc/tomcat9/Catalina/
ReadWritePaths=/var/lib/tomcat9/webapps/
ReadWritePaths=/var/log/tomcat9/
ReadWritePaths=/upload_folder/ <- ここに追加
外のフォルダーをマウントするとき
mount -t cifs -o user=hogehoge,password=hogehoge,dir_mode=0777,uid=999,gid=999 //192.168.0.21/out_folder /upload_folder
uid=999はtomcat
CSSメモメモ
1..container では
display: grid;
2.最初は小さい画面から作成する。
その後で大きい画面
@media screen and (min-width: 376px)
376->600くらいの方がいい
3.ブロックのセンタリングは
margin: 0 auto;
4.サイズ指定は%で指定する
width: 31.2%;
5.画像の高さは横幅で拡縮
height: auto;
6.均等配置は
justify-content: space-between;
7.ハイパーリンクの心得
color: inherit;
text-decoration: none;
8.ul で横並び
display: flex;
list-style-type: none;
justify-content: space-between;
9.grid チップス 繰り返すこともできる
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: repeat(3, 22px);
gap: 5px;
10.子要素の配置 grid バージョン
display: grid;
place-items: center; <-start center | center end などなど
11.子要素の配置 flex バージョン
display: flex;
justify-content: left | center | right; <- どれか
align-items: start | center | end; <- どれか
tinyMCEを使う
tinymce.init({ selector: '#質問内容', language: 'ja' , language_url: 'tinymce_6.8.2/tinymce/js/tinymce/langs/ja.js', autoresize_min_height: 200, autoresize_max_height: 10000, promotion: false, statusbar: false, plugins: 'autoresize anchor autolink charmap codesample emoticons image link lists media searchreplace table visualblocks wordcount ', toolbar: 'undo redo | blocks fontfamily fontsize | bold italic underline strikethrough | link image media table mergetags | align lineheight | tinycomments | checklist numlist bullist indent outdent | emoticons charmap | removeformat', tinycomments_mode: 'embedded', mergetags_list: [ { value: 'First.Name', title: 'First Name' }, { value: 'Email', title: 'Email' }, ], init_instance_callback: editor => { editor.on('drop', event => { const file = event.dataTransfer.files[0]; editor.on('Change', () => { if (file != undefined && file != null && file.name != '') { const doc = editor.getDoc(); const imgs = Array.from(doc.images); // const len = imgs.length; imgs.forEach(img => { if (img.src.match(/^blob/) || img.currentSrc.match(/^blob/)) { fetch(img.src) .then(response => { return response.blob(); }) .then(blob => { const fData = new FormData(); fData.append('image', blob, file.name); fData.append('action_cmd', 'upload'); fetch( "質問Detail.do", { method: 'POST', body: fData } ) .then(response => { return response.json(); }) .then(json => { img.src = json.result; // この「img」オブジェクトが挿入されるタグなので、「class」なり「data-caption」なり好きに追加できる }); }); } }); } }); }); } });