只允许相对路径
Allowing relative paths only
我认为这是一个 Apache .htaccess
问题,但也许不是。可能是我看问题的角度不对,所以找不到合适的解决办法。
我正在构建一个网络应用程序 + 混合移动应用程序。我想共享完全相同的代码库,而无需手动调整任何内容以将我的应用程序部署到 Android 或 iOS,否则,部署过程将是棘手和痛苦的。我想要的是获取 Web 应用程序存储库,将其推入 Cordova 的 box (你这个肮脏的人;),它会成功部署它。
现在,一个问题是 Cordova 需要相对路径才能正常工作。例如,这就是我包含 require.js
文件的方式:
<script data-main="library/js/dependencies.js" src="library/js/libs/require.js">
</script>
这在混合应用程序上运行良好。这在大多数 Web 应用程序的 URL 上也能正常工作,这些 URL 具有以下方案:
domain.com/view_name
但是,当我从接收 URI 参数的视图加载应用程序时会发生这种情况:
domain.com/view_name/6iwO4NyJqy
相对路径不再正确解析。由于路径不正确,我得到 404 error
。例如,上面的 require.js
文件是这样解析的:
http://domain.com/view_name/library/js/libs/require.js
view_name
位是错误的部分。它不应该在那里。没有它,文件将被成功找到。
这是我的 .htaccess
文件:
RewriteEngine on
RewriteBase /
# REROUTING EVERYTHING TO index.html
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d [OR]
RewriteCond %{REQUEST_URI} ^/$
RewriteRule .* /index.html [NC,L,QSA]
有没有办法设置我的 .htaccess
文件,这样我就不需要修改应用程序中的相对路径,并且仍然可以正确解析它们?
欢迎提出任何建议。
不是你的重写规则造成的,是你使用了相对路径造成的。
您可以在页面 HTML 的 <head>
部分下方添加此内容:
<base href="/" />
这样每个 亲戚 URL 都是从那个基础 URL 解析的,而不是从当前页面的 URL.
我认为这是一个 Apache .htaccess
问题,但也许不是。可能是我看问题的角度不对,所以找不到合适的解决办法。
我正在构建一个网络应用程序 + 混合移动应用程序。我想共享完全相同的代码库,而无需手动调整任何内容以将我的应用程序部署到 Android 或 iOS,否则,部署过程将是棘手和痛苦的。我想要的是获取 Web 应用程序存储库,将其推入 Cordova 的 box (你这个肮脏的人;),它会成功部署它。
现在,一个问题是 Cordova 需要相对路径才能正常工作。例如,这就是我包含 require.js
文件的方式:
<script data-main="library/js/dependencies.js" src="library/js/libs/require.js">
</script>
这在混合应用程序上运行良好。这在大多数 Web 应用程序的 URL 上也能正常工作,这些 URL 具有以下方案:
domain.com/view_name
但是,当我从接收 URI 参数的视图加载应用程序时会发生这种情况:
domain.com/view_name/6iwO4NyJqy
相对路径不再正确解析。由于路径不正确,我得到 404 error
。例如,上面的 require.js
文件是这样解析的:
http://domain.com/view_name/library/js/libs/require.js
view_name
位是错误的部分。它不应该在那里。没有它,文件将被成功找到。
这是我的 .htaccess
文件:
RewriteEngine on
RewriteBase /
# REROUTING EVERYTHING TO index.html
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d [OR]
RewriteCond %{REQUEST_URI} ^/$
RewriteRule .* /index.html [NC,L,QSA]
有没有办法设置我的 .htaccess
文件,这样我就不需要修改应用程序中的相对路径,并且仍然可以正确解析它们?
欢迎提出任何建议。
不是你的重写规则造成的,是你使用了相对路径造成的。
您可以在页面 HTML 的 <head>
部分下方添加此内容:
<base href="/" />
这样每个 亲戚 URL 都是从那个基础 URL 解析的,而不是从当前页面的 URL.