由于配置了
问题三、因为前端是使用的vue,结果在加载资源的时候碰到浏览器报错:Uncaught SyntaxError: Unexpected token <
具体现象是js文件夹下的所有js变成了文件夹,js目录下的所有js都变成了index.html文件。
try_files $uri $uri/ /index.html;
Nginx里面这段代码引起的。当出错的时候会强制跳转到 index.html 页面,而js文件是不会识别html,因此报Uncaught SyntaxError: Unexpected token < 错误
访问了不存在的js,然后这个404错误又重新指向了一个提示的自定义页面,由于脚本里面不允许出现标签因为标签带了<>符号,所以,就会抛出这个异常 从而报错。
加入如下配置,专门处理js等静态资源文件
location ~ ^/(images|img|javascript|js|css|flash|media|static)/ {
alias /external/product/;
autoindex on;
}
最后修改以后的conf文件配置如下:
user root;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 7070;
server_name server7070;
location /token{
root /external/product/getToken;
try_files $uri $uri/ /index.html =404;
}
location ~* /token\.(gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ {
root /external/product/getToken/;
expires 30d;
}
}
server {
listen 7071;
server_name server7071;
location /xy-app-api{
root /external/product/apidoc/xy-app-api;
try_files $uri $uri/ /index.html =404;
}
}
server {
listen 80;
server_name 192.25.106.214;
location /app-web/static {
alias /external/product/app-web/static;
}
location /app-web {
alias /external/product/app-web;
}
location ~ ^/(images|img|javascript|js|css|flash|media|static)/ {
alias /external/product/;
autoindex on;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 6060;
server_name server6060;
location /portfolio-web/ {
alias /external/product/portfolio-web/;
}
location ~ ^/(images|img|javascript|js|css|flash|media|static)/ {
alias /external/product/portfolio-web/;
autoindex on;
}
}
server {
listen 8095;
server_name server8095;
location /{
root /portfolio-static-files;
}
}
server {
listen 32041;
server_name *.*.*.214;
charset utf-8;
access_log logs/szy.access.log;
error_log logs/szy.error.log;
location /v1{
proxy_pass http://IP:32041;
}
proxy_set_header Host $host:32041;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443;
# server_name localhost;
# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_timeout 5m;
# ssl_protocols SSLv2 SSLv3 TLSv1;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
————————————————
版权声明:本文为优快云博主「韭菜猫骑士」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/hithedy/article/details/100079460
chunk-vendors.fcca6113.js:1 Uncaught SyntaxError: Unexpected token '<'
但是不知道这是什么原因:于是上网查询(https://blog.youkuaiyun.com/weixin_44166439/article/details/113779223)
首先查看了mode已经改为history
然后就把publicPath:“./”改为 ‘/’居然不报错了。
最近在部署vue项目的时候访问项目遇到了 控制台报错:
Uncaught SyntaxError: Unexpected token '<'
1
chunk-xxxxxx.js 403错误无法访问等
1
这里可以确认是的 项目打包的肯定没有问题,因为同一份包在别的服务器可以正常运行。
在网上搜了很多答案都没有用。
在这里记录一下自己的解决方法:
修改 dist 文件夹下的所有文件权限:
执行命令:
# cd /data/jar/scmp/ui/dist //这里是自己项目部署的路径
# chmod -R 755 ./* // 修改dist文件夹下的所有权限
1
2
3
修改后的权限名
备注:
1:首先要确保 打包的项目是没有问题的并且nginx配置也是正确的
如果你也是搜索半天没有找到解决方案,不妨试试这个方法,说不定可以呢