私の問題は、Nginxサーバー(Ubuntu)上でLaravel 5.4を使用してCSSファイルとJSファイルを提供しています。私はネストされたサブディレクトリ(Webサーバーのルートにない)からアプリケーションを提供するようにサーバーを構成しました。ルーティングは機能しています。参照:Laravel 5.4サブディレクトリNginxで提供されます。 404とjsファイルを含む場合
- https://zwestwind.com/sandboxes/zypth/blog/tasks
- https://zwestwind.com/sandboxes/zypth/blog/posts
- と全く同じように/ ..blog。
問題は、私はJSファイル(そしておそらくCSS)を含めることができないということです。 JSファイルは "blog/public/js/posts.js"にあります。
私のサイトの構成と、ブレードファイルにJSファイルを含めるコードを以下に添付します。サイトにアクセスしたときにコンソールでエラーを表示できます。
サーバー構成:私が試してみました
<script src="{{ URL::asset('posts.js', true) }}"></script>
物事:
- 私は「はJS /ポストを使用してみましたが
server { return 404; } server { listen 80; listen [::]:80 ipv6only=on; listen 443 ssl; root /var/www/zwestwind.com/html; index index.php index.html index.htm; # Make site accessible from http://localhost/ #server_name example.com www.example.com; server_name zwestwind.com www.zwestwind.com; ssl on; ssl_certificate /etc/nginx/ssl/pub_clf_origin.pem; ssl_certificate_key /etc/nginx/ssl/priv_clf_origin.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; ssl_prefer_server_ciphers on; location/{ # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ =404; # Uncomment to enable naxsi on this location # include /etc/nginx/naxsi.rules } # route to laravel project: $uri = /sandboxes/zypth/blog/public/index.php location ~ ^/sandboxes/zypth/blog { alias /var/www/zwestwind.com/html/sandboxes/zypth/blog/public; try_files $uri $uri/ @laravel; location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; #fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME /var/www/zwestwind.com/html/sandboxes/zypth/blog/public/index.php; } } location @laravel{ rewrite /sandboxes/zypth/blog/(.*)$ /sandboxes/zypth/blog/index.php?/$1 last; } # Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests #location /RequestDenied { # proxy_pass http://127.0.0.1:8080; #} error_page 404 /404.html; # redirect server error pages to the static page /50x.html error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini # With php5-cgi alone: fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; fastcgi_index index.php; include fastcgi_params; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} }
ブレード・コードは、JSファイルを含めます。 js 'や他の多くのバリエーションが含まれています。例えば、zwestwind.com/sandboxes/zypth/blog/public/posts.jsなどのハードコーディングされたパスは無駄です(prot ocol、私は評判のために2つのリンクしか掲載できません)。
- ロケーションブロックの追加:location〜.js $ {...}アプリケーション/ x-javascriptのコンテンツヘッダを追加する
- (http)ブログで同じアプリケーションを提供するようにvhostサーバを設定しました。 zwestind.com/posts。すべてのルーティングとCSS/JSファイルのインクルードがそこで動作するので、それをチェックしてください。そのサブドメインのサーバー設定は、Laravelインストールガイドに指定されているとおりです。
この問題は、プライマリドメインのサーバー設定の問題(つまり、「^/sandboxes/zypth/blog」をリッスンする場所ブロックがJSファイルのリクエストをキャッチしていることを原因としていると推測しています)その結果、404になります。これをどのように修正すればよいでしょうか?
スクリプトが動作すると、「posts.jsは準備完了です!」と表示されます。コンソールに表示されます(httpのサブドメインを参照してください)。
ありがとうございました。
P.S.もし私がこのアプリケーション(ともっと)をネストされたディレクトリで提供したいのであれば誰でも興味があります.Webサーバーの設定方法を学びながらONE SSL証明書を使ってライブデモアプリケーションをホストしたいからです。このサーバーは、大量のトラフィック用ではありません。このようなファイルを含む