我已经对此猛烈抨击了,显然我缺少一些简单的东西。我有一个在Nginx上提供的Django应用程序。除了某些.HTM文件是Tinymce HTML编辑器的库中,所有其他静态文件都可以提供。
未提供文件的路径是:http://www.myurl.org/static/admin/tinymce/jscripts/tiny_mce/plugins/advlink/link/link.htm/
nginx日志文件指出错误是:"/home/deployer/cmp/cmp/cmp/cml/static/admin/tinymce/jscripts/tiny_mce/plugins/plugins/advlink/advlink/link.htm/index.html"未找到(20:不是目录)
(顺便说一句,我不知道为什么nginx一直认为文件路径会导致目录。)
但是,此测试文件:http://www.myurl.org/static/admin/tinymce/jscripts/tiny_mce/plugins/advlink/tst.html还可以。
我的配置文件是:
upstream app_server_wsgiapp {
server localhost:8000 fail_timeout=0;
}
server {
listen 80;
server_name XX.XXX.X.XX;
access_log /var/log/nginx/XX.XXX.X.XX.access.log;
error_log /var/log/nginx/XX.XXX.X.XX.error.log info;
keepalive_timeout 5;
#nginx serve up static files and never send to the WSGI server
location /static {
include /etc/nginx/mime.types;
autoindex on;
alias /home/deployer/cmp/cml/static;
}
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
if (!-f $request_filename) {
proxy_pass http://app_server_wsgiapp;
break;
}
}
#this section allows Nginx to reverse proxy for websockets
location /socket.io {
proxy_pass http://app_server_wsgiapp/socket.io;
proxy_redirect off;
proxy_buffering off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
}
MIME类型的相关部分文件:
types {
text/html html htm shtml;
text/css css;
text/xml xml rss;
image/gif gif;
image/jpeg jpeg jpg;
application/x-javascript js;
application/atom+xml atom;
...
}
有什么建议要获得该链接。
更新:尝试了几件事后,我注意到nginx错误日志说:"/home/deployer/cmp/cmp/cml/static_proxy/index.html都没有找到",请求来自:" get/static_proxy/?u=myurl.org/static/admin/tinymce/jscripts/tiny_mce/plugins/advlink/link.htm
(作为记录,这不是我的应用程序,我正在帮助一位老师的朋友在她的开发后将戈多尔迁移到Linode。)
static_proxy来自Tinymce lib。但是,这在我的机器上的开发人员中不是问题。一切都很好。我尝试在此位置块中添加,但这只是一个挑剔的猜测。
location /static_proxy {
autoindex on;
root /home/deployer/cmp/cml;
}
如果我将上述根指令更改为
alias /home/deployer/cmp/cml/static;
我在弹出窗口中获取静态目录列表,这似乎是一种改进。
我与wordpress-mailpoet-tinymce遇到了同样的问题。
苦苦挣扎后,我注意到所有以 .htm 或 .html 结尾的文件。在使用不同后缀(例如.jpg或.gif)重命名同一文件时,它将成功提供。因此,我终于添加了一个特殊的NGINX指令,允许来自MailPoet扩展名的HTM和HTML文件。在这里是:
# Mailpoet - tinyMCE quick fix
location ~ /wp-content/plugins/wysija-newsletters/js/tinymce/.*.(htm|html)$ {
add_header Access-Control-Allow-Origin *;
access_log off; log_not_found off; expires 30d;
}
希望它可以帮助他人...
我有一个问题,让Timymce与Nginx一起工作。
以下链接帮助我解决了问题。不确定它是否是最好的解决方案,但它可以很好地完成我需要做的事情。
https://techvangelist.net/nginx-global-rewrite-issue-issue-js-css-images-images-not-not/
我能够通过添加这样的指令来使Tinymce工作...
#tinymce fix
location ~ .(mezzanine|tinymce)/(.+)$ {
try_files $uri $uri/ /$1/$2;
}