在我的部署服务器上加载应用时,我遇到了麻烦。
我正在使用AngularJS 1.4.x并遵循Angular-Seed模板提出的路由和配置方案:https://github.com/angular/angular-seed
在本地(Apache)和另一个远程Web服务器(Apache)(免费托管服务)上一切正常。路由工作和页面加载如预期。在远程服务器中,我可以在加载之前未加载的模板时遇到一些小问题,但我认为这是正常的。
问题出在我的官方部署服务器(Apache)上: 它不是加载路由模板,而是递归地加载index.html内部的self.html,导致在几秒钟之后浏览器出现堆栈超出错误并停止页面。
有时它不会像预期的那样加载页面,但是在两三个路径之后,它开始递归加载index.html而不是请求的模板。 但是,在大多数情况下,在链接或事件触发的第一个路径中,页面会挂起自身内部递送的index.html。
与angular-seed一样,我有一个index.html,内容为<div ng-view></div>
标记。
在本地和另一个免费的Web服务器上没问题。
我甚至试过使用ui.router和他的状态模式而不是ng-router。
没有超出堆栈,因为在<div ng-view>
的index.html中加载第一个index.html之后,它会停止递归。
使用ui.router,在本地或其他免费的Web服务器中仍然没有问题。该应用程序执行预期加载所有状态/路由。
有一些apache配置或我必须在服务器上查看的内容吗?
部署服务器是专用服务器,因此我可以访问所有内容。
感谢您的帮助!
编辑:
这里有三个服务器的Apache模块:
本地服务器Apache模块: 核心 http_core mod_access_compat mod_actions mod_alias中 mod_allowmethods mod_auth_basic mod_auth_digest的 mod_auth_form mod_authn_anon mod_authn_core mod_authn_dbd mod_authn_dbm mod_authn_file模块 mod_authn_socache mod_authnz_ldap模块 mod_authz_core mod_authz_dbd mod_authz_dbm mod_authz_groupfile mod_authz_host mod_authz_owner mod_authz_user mod_autoindex mod_bucketeer mod_buffer mod_cache的 mod_cache_disk mod_case_filter mod_case_filter_in mod_cern_meta mod_cgi一样 mod_cgid mod_charset_lite mod_dav的 mod_dav_fs可以 mod_dbd mod_deflate模块 mod_dir mod_dumpio mod_echo mod_env 指定mod_expires mod_ext_filter mod_file_cache提供 mod_filter mod_headers中 mod_include负责 mod_info mod_lbmethod_bybusyness mod_lbmethod_byrequests mod_lbmethod_bytraffic mod_lbmethod_heartbeat mod_log_config mod_log_debug mod_logio mod_mime mod_mime_magic模块 mod_negotiation模块 的mod_perl mod_php5 mod_proxy的 mod_proxy_ajp的 mod_proxy_balancer的 mod_proxy_connect mod_proxy_express mod_proxy_fcgi mod_proxy_ftp模块 mod_proxy_http mod_proxy_scgi mod_ratelimit mod_remoteip mod_reqtimeout mod_request mod_rewrite的 mod_sed mod_session mod_session_cookie mod_session_dbd mod_setenvif mod_slotmem_shm mod_so mod_socache_dbm mod_socache_memcache mod_socache_shmcb mod_speling 了mod_ssl mod_status的 mod_substitute mod_suexec mod_unique_id mod_unixd mod_userdir mod_usertrack mod_version mod_vhost_alias 预派生 util_ldap
远程服务器Apache模块: 核心 http_core mod_actions mod_alias中 mod_asis mod_auth_basic mod_authn_default mod_authn_file模块 mod_authz_default mod_authz_groupfile mod_authz_host mod_authz_user mod_av_htaccess mod_cgi一样 mod_deflate模块 mod_dir mod_env 指定mod_expires 的mod_fastcgi mod_filter mod_include负责 mod_log_config mod_logio mod_mime mod_negotiation模块 mod_php5 mod_rewrite的 mod_setenvif mod_so mod_status的 mod_version mod_vhost_alias 解析器 prefork的
生产服务器Apache模块: 核心 http_core mod_actions mod_alias中 mod_auth_basic mod_authn_default mod_authn_file模块 mod_authz_default mod_authz_groupfile mod_authz_host mod_authz_user mod_autoindex mod_cgi一样 mod_dir mod_env 指定mod_expires mod_filter mod_headers中 mod_include负责 mod_log_config mod_logio mod_mime mod_negotiation模块 mod_proxy的 mod_proxy_ajp的 mod_proxy_balancer的 mod_proxy_connect mod_proxy_ftp模块 mod_proxy_http mod_proxy_scgi mod_rewrite的 mod_setenvif mod_so 了mod_ssl mod_status的 mod_suexec mod_unique_id mod_userdir prefork的
可能缺少mod_vhost_alias
与问题有关吗?
我已经读过mod_userdir
将覆盖mod_vhost_alias
,但它是我的生产服务器中唯一缺少的关于文件解析和本地和远程免费配置的模块...
我将尝试重建apache并在接下来的几天内包含该模块然后进行测试。
答案 0 :(得分:0)
经过我的托管服务提供商的支持团队检查后,我们发现了问题。
它与ModSecurity apache模块的一些误报匹配有关。
我必须禁用以下规则ID:
981242
981243
981245
981246
981257
这可能不是在测试期间触发的严格相关规则:
970901
所有规则都与MySQL注入阻止有关。
现在应用程序按预期工作。
希望它对任何人都有帮助。
感谢大家的支持,提示和建议!